基于JAVAEE开发的简单的教务网站

基于JAVAEE开发的简单的教务网站

六月 04, 2019

一、课程报告简介


“Java EE 技术”是计算机专业本科学生必修的重要专业课程。通过本课程的教学,帮助学生了解Java EE编程设计思想,能够初步运用Java EE技术和基本开发工具进行B/S架构的软件代码设计。培养学生用新一代程序设计思想和逻辑思维方式进行计算机编程研究,启发学生的创新意识,提高学生在软件设计过程中分析问题和解决问题的实际动手能力,使学生的理论知识和实践技能得到共同发展。实际应用能力将在上机实验中得到锻炼。本课程把各专业基础知识综合在一起,培养提高学生专业能力,为同学走向社会、就业等奠定了坚实的自信心和牢固专业知识,极大的提高同学在社会就业竞争中的竞争力。

二、课程报告目的


  1. 掌握计算机专业知识,能针对工程问题进行分析与设计。

  2. 能运用计算机工程的思维方法,针对工程问题合理选择相关实现技术,提出优化解决方案。

  3. 能够运用计算机专业知识设计功能模块及系统整体解决方案,并能对方案进行优化,体现创新意识。

  4. 能够掌握Java EE Web技术进行软件系统开发的基本方法,并选择合适工具进行测试。

  5. 能够掌应用系统。握并理解常见的软件设计方法,能够运用Servlet、JSP、JDBC技术开发简单的Web

三、编程环境


OS:Mac OS

软件:Eclipse IDE

四、报告内容


1. 简介

这是个简单的教务系统网站,对系,专业,班级,课程信息,课程安排,学生管理进行维护。

2. 需求分析

2.1 系统概述:

- 简单的教务系统

- 前台主要是登录、查询信息等模块,后台主要完成功能有系,专业,班级,课程信息,课程安排,学生管理,

- 后台系统先登录,才能操作这些信息:添加/修改/删除;

- 没有登录,不能操作。

用例图

2.2功能分类:

【管理员模块:】

1)注册/登陆

2)用户管理

3)学院管理

4)角色管理

【用户模块:】

对系,专业,班级,课程信息,课程安排,学生进行信息管理

​ 比如 :

1)添加一个学生, 指定添加的院系

​ 2) 对指定的学生信息修改

​ 3) 删除选择学生

​ 4) 列表展示

3.设计

3.1 系统设计

主要做下面的事情,

​ 1) 搭建系统框架结构

​ (基于mvc结构应用)

​ 2) 确定项目的关键点/难点

​ 3) 确定引用组件、公用类的版本

​ Struts2.3

​ Hibernate3.6

​ Spring3.2

3.2 数据库的设计

课程表:course

班级表:class

系表:department

角色表:role

学生表:student

用户表:user

资源表:resource

员工表:staff

部门表:section

专业表:speciality

时间表:timetable

数据库表结构:

数据库表结构图

3.3 代码

3.3.1 设计数据库:yike

建表:

文件:

(1)create.sql 、

(2)populate.sql

3.3.2 建立web项目、引入jar文件、准备环境
3.3.3 设计javabean、写映射

Course.java/user.java/student.java/role.java/…

3.3.4 Dao设计接口

*Dao.java

*Dao.xml

3.3.5 Service接口实现

*Biz.java

3.3.6 Action实现

*Controller.java

3.3.7 JSP页面

login.jsp/bottom.jsp/main.jsp/nav.jsp/_add.jsp/_update.jsp

3.3.8 用户登陆拦截器

FromLoginFilter.java/LoginIntercepter.java 检查是否登陆,只有登陆才能操作;

五、关键代码


1) 设计数据库: yike
CREATE TABLE user( user_id VARCHAR(30), password VARCHAR(50), salt VARCHAR(100), role_ids VARCHAR(100), locked BOOL DEFAULT FALSE, PRIMARY KEY (user_id))表:class, course, department, resource, role, section, speciality, staff, student, takes, timetable, user;
### 2) 建立web项目、引入jar文件、准备环境【struts相关jar】commons-fileupload-1.2.2.jarcommons-io-2.0.1.jarcommons-lang3-3.1.jarfreemarker-2.3.19.jarjavassist-3.11.0.GA.jarognl-3.0.5.jarstruts2-core-2.3.4.1.jarxwork-core-2.3.4.1.jar 【hibernate 相关 jar】antlr-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jarhibernate3.jarhibernate-jpa-2.0-api-1.0.0.Final.jarjavassist-3.12.0.GA.jarjta-1.1.jarslf4j-api-1.6.1.jar 【Spring-core】commons-logging-1.1.3.jarspring-beans-3.2.5.RELEASE.jarspring-context-3.2.5.RELEASE.jarspring-core-3.2.5.RELEASE.jarspring-expression-3.2.5.RELEASE.jar 【Spring-web】spring-web-3.2.5.RELEASE.jarstruts2-spring-plugin-2.3.4.1.jar 【Spring-Aop】aopalliance.jaraspectjrt.jaraspectjweaver.jarspring-aop-3.2.5.RELEASE.jar 【Spring-orm】c3p0-0.9.1.2.jarmysql-connector-java-5.1.12-bin.jarspring-orm-3.2.5.RELEASE.jarspring-tx-3.2.5.RELEASE.jarspring-jdbc-3.2.5.RELEASE.jar
3) 设计javvabean、写映射
public class User { String username; //用户名 String userId; String password; String salt; private List roleIds; //拥有的角色列表 private Boolean locked = Boolean.FALSE;
<hibernate-mapping package=*”cn.giit.entity”> <class name=admin“* table=*”user> <id name=“id”> <generator class=“native”> <property name=“adminName”* length=*”20”> <property name=“pwd”* length=*”20”*>
public class Dept { private int id; private String name;}
<hibernate-mapping package=*”cn.itcast.entity”> <class name=“Dept”* table=*”dept”> <id name=“id”* column=*”deptId”> <generator class=“native”> <property name=“name”* column=*”deptName”*>
public class Student { String studentId; String password; String studentName; String idCard; String year; String className; String telephoneNumber; String studentOriginBase; String gender; String picPath; }
<hibernate-mapping package=*”cn.giit.entity”> <class name=student“* table=*”student> <id name=“id”* column=*”empId”> <generator class=“native”> <property name=“empName”> <property name=“salary”> <many-to-one name=“dept”* column=*”dept_id”* class=*”Dept”*>
4) Dao设计接口
public interface IAdminDao { /** * 保存 * @param admin 管理员对象 / *void** save(Admin admin); /** * 根据管理员信息查询 * @param admin 管理员对象 * @return 返回查询后的结果 */ Admin findByAdmin(Admin admin); }
public interface IDeptDao { /** * 查询全部 * @return 返回全部信息 / List getAll(); /* * 根据主键查询 * @param id 主键 * @return 返回查询后的结果 / Dept findById(*int** id); }
public interface StudentDao { public List findAll(); public void add(Student student); public void update(Student student); public void delete(int studentId);} public void delete(int studentId); List getAll(String employeeName); }
Dao实现、service省略
…..

六、实验结果截图(主要界面)


  • 登录界面

登录界面

  • 控制面板

控制面板

  • 用户管理

用户管理

  • 角色管理

img

  • 学院管理

    学院管理

七、报告总结体会


通过这次课程设计,我感受到了开发一个系统的不易,它要运用许多的知识,包括自己没学过的知识,所以要有自学的本领,这个项目所用到的spring框架在课堂上,老师就没介绍过,需要自己查资料,对需求的分析,进行数据库的建模,然后进行代码的设计和实现,完成一个小工程需要做一些建模,这个必须要有,他们可以让你的思路清晰,对你的项目的完成有很大的帮助,平时的一些小知识点也需要灵活应用,很多时候阻拦你的可能就是一个小问题。

八、参考文献


[1] 袁梅宇 张智斌 何佳.求精要诀:Java EE编程开发案例精讲.北京:清华大学出版社,2015.

[2] Oracle.Java EE Tutorial. http://docs.oracle.com/javaee/5/tutorial/doc/,2010.