收藏 分销(赏)

基于ssh的选课系统实验报告(含源文件).doc

上传人:a199****6536 文档编号:1214504 上传时间:2024-04-18 格式:DOC 页数:29 大小:1.63MB
下载 相关 举报
基于ssh的选课系统实验报告(含源文件).doc_第1页
第1页 / 共29页
基于ssh的选课系统实验报告(含源文件).doc_第2页
第2页 / 共29页
基于ssh的选课系统实验报告(含源文件).doc_第3页
第3页 / 共29页
基于ssh的选课系统实验报告(含源文件).doc_第4页
第4页 / 共29页
基于ssh的选课系统实验报告(含源文件).doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 基于SSH的选课系统目 录分工表I1引言12核心技术简介22.1MVC模式简介22.2Struts2框架简介32.2.1Struts2架构32.2.2Struts2基本处理流程42.2.3Struts2的优点42.3Hibernate框架简介42.3.1Hibernate架构52.3.2Hibernate核心接口52.3.3Hibernate基本处理流程52.3.4Hibernate的优点52.4Spring框架简介62.4.1Spring架构62.4.2Spring特点63选课系统需求分析83.1任务概述83.2用户特点83.3功能需求83.4界面需求93.5操作需求93.6输入输出需求9

2、4选课系统概要设计104.1设计思想104.2总体设计104.3系统层次结构图104.4接口设计114.5数据库设计114.6出错处理设计115选课系统详细设计135.1数据库详细设计135.1.1数据库关系模型设计135.1.2数据库物理结构设计136选课系统具体实现166.1开发与运行环境166.2开发环境的搭建166.3数据库系统实现176.4DAO层实现186.5Manager层实现196.6Action层实现206.7用户登录模块实现206.8管理员模块实现216.9学生模块实现216.10教授模块实现227系统测试237.1功能测试2326分工表姓名工作贡献度xx业务逻辑30%,前

3、端设计,完善界面,用户手册撰写30%xx业务逻辑70%,基本界面,报告撰写30%xxUML建模,DAO层接口设计20%xx数据库设计,DAO层接口设计20%1 引言随着计算机网络的发展,各大高校相继组建我自己的局域网络。为了告别传统的手工式课程信息管理方式,一个选课系统是十分重要的。一个好的管理软件能提高课程的管理效率,减轻管理人员的工作量。同时随着近年来企业Java的发展,使得开发一个针对学校需求的选课系统变得简单。因此使用企业Java来开发一个选课系统,是行之有效的。2 核心技术简介Struts2,Spring,Hibernate是三个相互独立的框架。但三个框架一起整合起来使用,能使软件系

4、统开发更轻松、更灵活、更容易扩展。三者都是“半成品”框架,使得我们在开发时不需要从头做起。三者之间的关系如图2-1:图2-1 Struts2,Spring,Hibernate关系图122.1 MVC模式简介MVC全称Model View Controller,它使得应用程序的输入、处理和输出分开,使程序的耦合度降低。其每个层次说明如下: Model(模型):模型表示业务相关的数据与业务的处理方法。能直接访问数据。 View(视图):视图用于对数据的显示。在这一层上,通常没有逻辑。为了更新视图,视图需要访问它监视的模型,因此视图通常事先在被监视的数据那进行注册。 Controller(控制器):

5、顾名思义,控制器起到控制作用,用于控制应用程序的流程。它处理事件并作出响应,调用相关的模型去处理事件请求,确定哪个视图返回请求。图2-2 MVC各层关系图图2-2显示的MVC各层之间的关系。由于它具有这些结构使得多个视图可以共有一个模型,同时对一层上的修改不会影响到其他层。2.2 Struts2框架简介Struts2是一个在WebWork的基础上转化而来的基于MVC的框架。采用拦截器的机制来处理用户请求,使得业务逻辑控制器与Servlet API实现分离。2.2.1 Struts2架构图2-3 Struts2架构图2-3 展示了Struts2的整体架构,其各模块说明如下: FilterDisp

6、atcher:它是Strut2的核心控制器。它根据ActionMapper的结果来决定对请求的处理和响应。 ActionMapper:它是一个接口,并提供了HTTP请求与Action之间的映射关系。如果用户的请求与ActionMapper中提供的方法相匹配,就继续调用ActionProxy。 ActionProxy:它会依据ActionMapper生成的URI以及配置管理器来找到响应用户请求的Action对象。然后创建ActionInvocation对象来执行相应的Action方法。 ActionInvocation:它会在调用Action处理方法的前后,还要调用各种拦截器。 Result:它

7、会根据相关视图将用户请求的处理结果反馈给用户。 struts.xml:是Struts2的配置文件,负责配置每个Action的返回结果所对应的跳转页面。 Interceptor:拦截器是Struts2的重要组件,其设计思想来源于AOP(面向切面编程)。通常用于处理某些通用的处理,它会在每个Action的外部执行。 Action:用于处理用户请求并封装业务数据。其执行后通常会返回一个String类型的量,struts.xml根据这个量来决定跳转页面。 Templates:页面模板。 Tag Subsystem:Struts2的标签库,用于页面的设置。2.2.2 Struts2基本处理流程图2-4

8、Struts2基本处理流程图2-4展示了Struts2基本处理流程,用户请求在经过一系列拦截器(拦截器会对用户请求进行相应的处理,如增加某些功能)后,就会交由Action处理,然后Action返回响应的结果(默认为“input”),最后通过匹配结果来选择跳转视图页面。2.2.3 Struts2的优点 “半成品”框架:使得开发不需要从头做起,而且在框架中很多地方都有默认值设置,减少了冗余的设置,提高了开发效率。 轻量级:资源消耗少,运行速度快。 搭建简单:只需在Myeclipse中将需要的包拷贝入项目中,再进行配置。 标签强大:Struts2提供了一系列的自己编写的标签用于页面布置,减少了页面代

9、码。 Action测试简单:不需要模拟HTTP对象,就可以直接测试。 错误报告明了:便于迅速找出错误并修改。2.3 Hibernate框架简介Hibernate是一个开放源码的对象关系映射框架,采用ORM机制,通常用于持久层的开发。它对JDBC进行了轻量级的封装,使得我们在开发过程中可以使用面向对象的方式来操纵数据库。2.3.1 Hibernate架构图2-5 Hibernate架构2.3.2 Hibernate核心接口Hibernate核心接口一共有6个: Session接口:该接口用于持久化对象的增、查、删、该,属于非线程安全。 SessionFactory接口:该接口用于初始化Hiber

10、nate,充当数据存储源的代理,并创建Session对象。 Configuration接口:该接口在Hibernate的启动时,首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 Transaction接口:用于事务操作。 Query和Criteria接口:使用HQL或SQL语句查询数据库。其中Criteria接口更靠近面向对象;Query接口则提供了使用原生SQL语句的方法。2.3.3 Hibernate基本处理流程1. 创建Configuration实例,读取项目路径根目录下的配置文件信息。2. 创建SessionFactory实例,将Configuration中的

11、配置信息复制到SessionFactory中。3. 调用SessionFactory来创建Session4. 打开Session,并创建事务Transaction5. 进行持久化操作6. 提交事务7. 关闭Session8. 关闭SessionFactory2.3.4 Hibernate的优点 它使得数据库中的每一张表都映射为一个Java类,让我们在开发过程中可以使用面向对象的方式来操作数据库。 自动配置,我们只需在数据库中建立表,然后通过Myeclipse自带的工具就能完成映射。 它封装了对各种数据库的操作 轻量级框架,映射灵活,数据库表、配置文件、映射类我们只需要完成其中任何一部分就能依靠

12、工具完成三者的关系映射。2.4 Spring框架简介Spring框架致力于J2EE应用各层的解决方案,贯穿表现层、业务层、持久层。同时它是一个轻量级的框架,没有侵入性,不会改变原有框架的类容。使用它的目的不是去修改原有框架,而是使用它来管理,使得原有的框架工作得更好。2.4.1 Spring架构图2-6 Spring架构图2-6为Spring的架构,每个模块功能如下: 核心容器:提供Spring框架的基本功能。其主要组件是BeanFactory,采用IOC(控制反转)将应用程序的配置与依赖性代码分开。 Spring上下文:是一个配置文件,用于提供上下文信息。 Spring AOP:该模块直接将

13、面向方面的编程功能集成到了Spring 框架中。支持声明式的事务管理。 Spring DAO:该模块用于管理异常处理和不同数据库供应商抛出的错误消息。 Spring ORM:提供了如Hibernate这类ORM 的对象关系工具。 Spring Web:为基于 Web 的应用程序提供了上下文,简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC框架:该框架中融入了大量视图技术。2.4.2 Spring特点 轻量级框架:占用资源少,非侵入性。 控制反转(IOC):使得本来需要我们(应用程序)在执行前要进行的new操作,交由Spring的IOC容器来管理,在容器中进行配置,再

14、由容器来将new好的对象注入应用程序,从而松散了耦合度。 面向切面(AOP):通常我们的编程思路是至上而下的,Spring的AOP使得我们能横向考虑问题,例如事务与日志记录。3 选课系统需求分析3.1 任务概述选课系统用于管理学校的课程、学生、教授相关信息,除了基本的查询、添加功能外,还应有统计功能。同时操作方面应尽量简单。3.2 用户特点1) 系统管理员:该用户可以对课程信息、学生信息、教授信息进行维护,同时用户自己也能修改自己的密码与基本信息。2) 学生:该用户可以自行选课、退课、查看可表、查看成绩、查看应缴费用,同时用户自己也能修改自己的密码与基本信息。3) 教授:该用户可以选择要上的课

15、程,取消课程,查看、等级学生成绩,同时用户自己也能修改自己的密码与基本信息。3.3 功能需求功能需求图如下图3-1所示:图3-1 系统功能需求用例图:图3-2各模块具体说明如下:1) 登陆页面:用户输入合法的用户名和密码完成登陆,如果用户名或密码错误,应输出提示。2) 学生页面:显示当前用户的名字,以及相关功能连接、按钮。3) 教授页面:显示当前用户的名字,以及相关功能连接、按钮。4) 管理员页面:显示当前用户的名字,以及相关功能连接、按钮。3.4 界面需求界面简洁美观。3.5 操作需求操作简洁,符合人们通常使用习惯。3.6 输入输出需求要求输入数据合法,如果非法会跳出出错提示。4 选课系统概

16、要设计4.1 设计思想该选课系统用于对课程信息、教授信息、学生信息的维护与查看统计。能够方便管理员对各种信息的维护,教授、学生对自己相关需求功能的使用,它将具有以下特点: 运行速度快 占用资源少 界面简洁 操作简单4.2 总体设计1) 以用户登陆后的界面为平台,将各模块功能放于该页面2) 采用SSH框架3) 灵活性要求:视图与业务逻辑分开,低耦合。采取接口方式编程便于系统的维护以及移植。4) 输入输出要求:要求输入数据合法,如果非法会跳出出错提示。4.3 系统层次结构图图4-1 系统层次结构图4.4 接口设计用户接口:通过鼠标与键盘操作。内部接口:使用数据流提供的接口操作各个模块。4.5 数据

17、库设计概念结构设计是指将需求分析得到的用户需求抽象为信息结构。描述概念模型的有力工具是E-R模型。本系统E-R图如下图所示: 图4-2 用户E-R图 图4-3 教授E-R图 图4-4 学生E-R图 图4-5 课程E-R图 图4-6 学生选课E-R图 图4-7 教授选课E-R图 图4-8 管理员E-R图 图4-9 系统E-R图4.6 出错处理设计以下列出了可能的错误情况及其对应的错误信息:1) 用户名或密码有误,提示:您输入的用户名或密码有误,请重新输入。2) 管理员模块:a) 课程信息维护: 如果增加一门已存在的课程,输出提示:该课程已存在。 如果删除一门不存在的课程,输出提示:该课程不存在。

18、b) 教授信息维护: 如果增加一名已存在的教授,输出提示:该教授已存在。 如果删除一名不存在的教授,输出提示:该教授不存在。c) 学生信息维护: 如果增加一名已存在的学生,输出提示:该学生已存在。 如果删除一名不存在的学生,输出提示:该学生不存在。a) 修改密码:输入的原密码不正确,应提示错误3) 学生模块:如果选择的课程冲突,输出提示:课程已选择。4) 教授模块:如果选择的课程冲突,输出提示:课程已选择。5 选课系统详细设计本报告将对选课系统的数据库与各模块进行详细设计。5.1 数据库详细设计5.1.1 数据库关系模型设计E-R图向关系模型转换:一个实体型转换为一个关系模式,实体的属性即为关

19、系模式的属性,实体的标识符即为关系模式的键。根据E-R图,本系统的关系模型为:1) 用户(用户ID,登陆ID,密码,权限);2) 教授(教授ID,姓名,性别,电话,传真,系别,地址,email)3) 学生(学生ID,姓名,性别,电话,系别,地址,email)4) 管理员(管理员ID,姓名,性别,电话,email)5) 课程(课程ID,课程名,课程性质,上课日期,节次,学分,系别)6) 教授选课(教授选课ID,教授ID,课程ID)7) 学生选课(学生选课ID,教授ID,课程ID,学生ID,成绩)5.1.2 数据库物理结构设计数据库的物理设计是将一个给定逻辑结构实施到具体的环境中,逻辑数据模型要选

20、取一个具体的工作环境,这个工作环境提供了数据存储结构与存取方法。经过分析设计给出了各主要表的物理结构:users表:列名类型长度是否允许空值主键/外键idint8NO主键uidint8NO外键passwordvarchar20NOlevelint8NO表5-1admins表:列名类型长度是否允许空值主键/外键idint8NO主键namevarchar20NOsexvarchar8NOtelvarchar20YESemailvarchar20YES表5-2professors表:列名类型长度是否允许空值主键/外键idint8NO主键namevarchar20NOsexvarchar8NOtelv

21、archar20NOemailvarchar20YESdeptvarchar20YESfaxvarchar20YESaddressvarchar20YES表5-3students表:列名类型长度是否允许空值主键/外键idint8NO主键namevarchar20NOsexvarchar8NOdeptvarchar20YESaddressvarchar20YEStelvarchar20NOemailvarchar20YES表5-4courses表:列名类型长度是否允许空值主键/外键idint8NO主键namevarchar20NOtypeint20NOcreditvarchar20NOday_n

22、umint8NOlesson_numint8NOdeptvarchar20NO表5-5pc表:列名类型长度是否允许空值主键/外键idint8NO主键pidint8NO外键cidint8NO外键表5-6sc表:列名类型长度是否允许空值主键/外键idint8NO主键pidint8NO外键cidint8NO外键sidint8NO外键scoreint8YESdatedate-NO表5-76 选课系统具体实现6.1 开发与运行环境 操作系统:Win7 内存:2G 硬盘空间:500G 开发软件:Myeclipse 10,Microsoft Sql Server 2008,Java 6.0 ,Tomcat6

23、.0 框架版本:Struts 2.1,Hibernate 3.0,Spring 3.06.2 开发环境的搭建1) 新建一个Web项目名为sc,选择使用Java6.0,2) 添加Struts2相关支持包,除了默认的包以外,还应选上Spring的支持包3) 在Meclipse的数据库视图中增加scdb配置, 4) 添加Spring相关包,除了默认的包以外,还应选上Spring Web Liberaies 3.0,5) 添加Hibernate支持包,除了原有包外,将最后4个包也加入,6) Hibernate Configuration选择Spring Configuration file,因为三大框

24、架整合之后由Spring来管理所有的Bean,所以Hibernate的配置文件也由Spring的applicationContext.xml文件来管理,点击下一步;7) 选择Existing Spring Configuration file,点击下一步;8) 选择数据库为scdb,注意方言为SQL Server;9) 不建立SessionFactory,完成;10) 在web.xml中添加如下代码; contextConfigLocation/WEB-INF/classes/applicationContext.xml org.springframework.web.context.Cont

25、extLoaderListener struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter encodingUTF-8 struts2 /* 6.3 数据库系统实现users表:表 6-1admins表:表 6-2professors表:表 6-3students表:表 6-4courses表:表 6-5pc表:表 6-6sc表:表 6-7数据库映射到项目中,注意ID的生成方式选择native6.4 DAO层实现DAO(Data Access Object)是用于访问数据的对象,在使用时,我们在

26、DAO中定义访问其对应数据对象的接口方法,业务层通过DAO操作数据,这样避免了直接在业务层使用持久层的技术。DAO以及DAO实现放于如下图所示包中:图6-1在使用前,需要在Spring的配置文件中添加如下配置:org.hibernate.dialect.SQLServerDialectcom/cims/domain/Users.hbm.xmlcom/cims/domain/Sell.hbm.xmlcom/cims/domain/Car.hbm.xml在本系统中绝大多数DAO实现使用getHibernateTemplate()模板来操作数据库,因为该模板是线程安全的。例子:Overridepub

27、lic List findStudentAll() return getHibernateTemplate().find(from Students);从中可以看出Hibernate处理数据库的优势,它使用了对象的方式来对数据库的表操作。而且我们不需要编写最底层的SQL语句,而是直接使用它提供的方法。6.5 Manager层实现在Action中通过Manager对DAO接口进行调用,首先将需要对用到的DAO实例化,采用Spring的依赖注入方式将实例化的DAO注入到Action中。其接口与实现放于下图包中:图6-2例子:Overridepublic void addStudent(String

28、 name, String sex, String dept, String tel) Students s=new Students();s.setDept(dept);s.setTel(tel);s.setSex(sex);s.setName(name);studentDAO.addStudent(s);该方法用于保存一名学生。还需要在Spring的配置文件applicationContext.xml中添加如下信息:该配置将studentDAO实例化后注入studentManager中6.6 Action层实现Action用于返回一个Stirng类型字符串,来选择跳转页面。其主要的配置在s

29、truts.xml这个文件中。其实现放于下图包中:图6-3例子:Overridepublic String execute() throws Exception / TODO Auto-generated method stubcourseManager.addCourse(name, type, dept, day_num, lesson_num, credit);setMsg(课程:+name+储存成功!);return SUCCESS;前后省略了get,set方法,返回的SUCCESS会根据Struts2的配置文件中的/pages/courseService/addCourse.jsp来

30、选择返回页面6.7 用户登录模块实现该模块实现界面如下:图6-3接收用户输入账号及密码,并经服务器验证后登录到首页。登陆类图:图6-46.8 管理员模块实现该模块实现界面如下:图6-5进入管理员主页后,用户可以修改密码、修改个人信息、管理学生资料、管理老师资料以及管理课程资料。流程框图:图6-6添加用户类图:图6-76.9 学生模块实现该模块的具体实现页面如下:图6-8 学生主页进入学生主页后,用户可以修改密码和修改个人信息,选课、退课、查询成绩、课表查看、缴费查询功能。流程框图:图6-96.10 教授模块实现该模块的具体实现页面如下:图6-10进入教授主页后,用户可以修改密码、修改个人信息、

31、选择要教授的课程、登记学生的成绩,以及查看学生的成绩。流程框图:图6-117 系统测试7.1 功能测试用户模块:测试模块名称模块说明用户登录用户输入用户ID、密码登陆管理员模块测试:测试模块名称模块说明维护课程信息对课程进行增、查、删、改维护学生信息对学生进行增、查、删、改维护教授信息对教授进行增、查、删、改修改密码修改自己密码修改自己信息修改自己信息学生模块测试:测试模块名称模块说明选课选择课程退课退课查看课表查看自己的课表查看缴费查看自己应该缴费的金额修改密码修改自己密码修改自己信息修改自己信息教授模块测试:测试模块名称模块说明选课选择要教的课程录入学生成绩录入学生成绩查看学生成绩查看学生成绩修改密码修改自己密码修改自己信息修改自己信息

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服