基于SSH框架的在线考试系统-毕业设计论文.docx
基于SSH框架的在线考试系统 摘要 :在线考试系统是目前市场占有率较高,应用广泛的远程网络学习考试软件,适合政府、行业及企业的各专业网上考试、作业、练习等应用,它采用Web方式,同时适用于局域网和Internet,无需安装客户端,即可实现网上考试,并能够保存,自动判分、成绩查询。在开发方法上,引入了当今流行的ssh技术思想,数据库采用Mysql,把整个开发过程分为需求分析、概要设计、详细设计、系统实现等步骤。是人力资源的管理更为高效和科学,数据更为准确,从而将人事部门从繁重的、耗时的工作中释放出来,把精力集中到更高层的政策性工作中。 该系统设计并实现了以Jsp为基础的轻量级Web框架SSH(Struts+Spring+Hibernate)的在线考试系统。该系统采用MVC设计模式,将表示层、业务逻辑层和控制逻辑层清晰地分离出来,各层次之间接口清晰,耦合度低,易于扩展,使用SSH框架方便地构建Web应用,提高系统设计与实现的效率。本系统使用J2EE Java2平台企业版(Java 2 Platform, Enterprise Edition)做开发,运用SSH(Struts+Spring+Hibernate)三大框架的开发模式,采用Tomcat7.0作为应用服务器,Mysql5作为数据库,Microsoft Visio为建模工具。该系统共分为三个用户模块,即学生端、教师端,管理员 。学生端的功能主要包括个人资料管理、在线考试、成绩查询、退出系统。教师端的功能主要包括学生管理、试题管理、成绩管理、登录管理、退出系统,管理员的功能主要包括学生管理、试题管理、成绩管理、登录管理、教师管理、退出系统。以下论文中对该系统的设计方法和具体功能实现以及相关技术进行了详细的论述。关键词: B/S;在线考试系统;SSH;MVC模式;J2EE;Abstract:Online examination system is one of the market share is high and wide application of remote network learning test software, suitable for the government, industries and enterprises of various professional online examination, assignments, and practice application, it USES the way of Web, at the same time apply to the local area network and Internet, do not need to install the client, online examination can be realized, and can save, mark, scores query automatically. On the development method, the introduction of today's popular SSH technology thought, database using Mysql, the whole development process is divided into requirement analysis, general design, detailed design, system implementation and other steps. Is human resources management more efficient and scientific, the data more accurate, to the personnel department released from the heavy, time-consuming work, to focus on the higher level of policy work. The system was designed and implemented based on Jsp lightweight Web framework SSH (Struts + Spring + Hibernate) online examination system. The system USES the MVC design pattern, the presentation layer, business logic layer, and clearly separate control logic layer, the interface between different levels is clear, low coupling, easy to expand, SSH framework used to facilitate building Web applications, improve the efficiency of the system design and implementation.This system USES the J2EE Java2 Platform Enterprise Edition (Java 2 Platform, Enterprise Edition) development, using the SSH (Struts + Spring + Hibernate) three framework mode of development, using Tomcat7.0 as application server, Mysql5 as a database, Microsoft Visio for modeling tool. Department altogether is divided into two user modules, namely the side, the teachers and students. Student the function mainly includes personal information management, online examination, scores query, from the system. The function mainly includes the students management, test question management, performance management, log management, classroom management, exit the system. The following paper design method of the system and the specific functions and related technology were described in detail.Key words: B/S; SSH; MVC mode; J2EE; thesis management;目 录1 绪论11.1课题研究背景11.2课题研究目的及意义11.3本文内容及结构12 关键技术介绍32.1 SSH框架及优势32.2Internet终端42.3Tomcat服务器42.4Mysql数据库53 需求分析63.1用例需求63.1.1用例图简介63.1.2 总体用例图63.2功能需求63.3性能需求73.3.1安全性要求73.3.2性能要求74 总体设计84.1总体软件架构设计84.1.1层次架构模式84.1.2基本处理流程84.2总体功能结构设计94.3数据库设计94.3.1概念结构设计要点94.3.2逻辑结构设计要点114.3.3物理结构设计要点125 具体实现155.1界面实现155.1.1整体界面框架设计155.1.2部分界面展示155.2功能实现流程176 结束语246.1全文总结246.2心得体会24致谢25参考文献26IV1 绪论考试是教学过程中的一个重要环节。学生考试成绩的优劣,不但反映其对教学内容和应掌握知识的分析、理解、吸收、运用的能力,更反映教师对教学内容的把握和熟练程度。传统的学校教学中,进行一场考试,要求老师编写试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。而网上考试系统不仅减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力,并且突破了时间与空间的限制,不仅节省了资源,而且提高了评分的客观性、公正性和准确度,大大改善了考试工作的效率。加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。 1.1课题研究背景随着计算机技术、网络技术迅速发展和高校校园网功能的日益完善,很多高校建立了基于校园网的网络信息管理平台,为提高教学管理水平提供了先进的管理手段。目前,基于网络的在线考试系统己经成为现代考试方式的有力补充和发展。相对于传统的笔试,网络在线考试不仅减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力,并且突破了时间与空间的限制,不仅节省了资源,而且提高了评分的客观性、公正性和准确度,大大改善了考试工作的效率。它旨在探索一种以互联网为基础的考试模式。通过这种新的模式,为学校创造一种新的考试环境,使考务管理突破时空限制,提高考试工作效率和标准化水平,使学校管理者、教师和学生可以随时、随地通过网络完成考试。1.2课题研究目的及意义很多学校学生的期末考试仍采用任课教师(个人或集体)考前出题的方式。为解决学生压题,考前漏题,补(缓)考试题与正式考试试题题量及难度差异问题,教务管理部门通常要求教师同时出多套试卷,其题量与难度要求相同,并且要同时给出答案和评分标准。这样做虽能解决一些问题,但给教师增加了很大的工作负担,若上下届学生的同一门课程由同一教师承担,则难免几届学生用相同几套试卷;若由不同教师任课出题,则上下届学生的成绩之间又不具有可比性。若建立题库,每次考试前由题库中题目随机生成试卷,则可较好地解决考教分离的问题,也可将广大教师从每学期末繁重的命题工作中解放出来。近年来,部分学校陆续开发了一些基于微机的题库系统,并作为成果向其它学校推广,但这些题库一般都是结合本校具体情况,针对单一课程的小型题库,甚至某些学校购得的题库系统中的题目本身是不可维护的,即使题目已不适合自己的学生考试使用,也无法更新题库中的题目。为解决题库系统中存在的这些问题,最后给出了一个较为理想的题库系统解决方案,并结合当前比较使用的B/S结构开发一个功能完备的网上考试系统。1.3本文内容及结构 本论文共分为七章,其章节结构如下:第一章 绪论。本章重点阐述了本课题的研究背景、目的及意义,并简要概括了本文的内容及结构。第二章 系统关键技术介绍。本章介绍了系统关键技术及选择的开发环境。第三章 系统需求分析。本章根据在线考试系统的开发原理及开发过程,对系统的需求进行了研究与分析。第四章 系统总体设计。本章介绍了的总体设计,包括数据库的设计。第五章 系统具体实现。本章介绍了的具体实现过程并举例说明。第六章 结束语。本章总结了全文的主要思想及自己的心得体会。2 系统关键技术介绍2.1 SSH框架及优势(1)典型的三层构架体现MVC(模型Model,视图View和控制)思想,可以让开发人员减轻重新建立解决复杂问题方案的负担和精力。便于敏捷开发出新的需求,降低开发时间成本。(2)良好的可扩展性,ssh主流技术有强大的用户社区支持它,所以该框架扩展性非常强,针对特殊应用时具有良好的可插拔性,避免大部分因技术问题不能实现的功能。(3)良好的可维护性,业务系统经常会有新需求,三层构架因为逻辑层和展现层的合理分离,可使需求修改的风险降低到最低。随着新技术的流行或系统的老化,系统可能需要重构,ssh构架重构成功率要比其他构架高很多。(4)优秀的解耦性,很少有软件产品的需求从一开始就完全是固定的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。ssh三层构架,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。采用这种方式的软件实现,即使软件的部分发生改变,其他部分也不会改变。 Struts、Spring、Hibernate是三个既相互独立又彼此关联的框架,它们可以无缝地整合起来构建灵活、易于扩展的多层Web应用程序,Struts用来实现表示层,Spring实现业务层,Hibemate实现持久层。2.1.1 Struts2简介:虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2 与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势,因此是一个非常值得期待的框架。Struts2优势:(1)Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(2) Struts2强大的标签库提高开发效率。(3)页面脉络清晰,通过查看配置文件把握整个系统的关系,方便开发人员岗位流动时的维护。2.1.2 Spring简介:Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring优势:(1)Spring提供了一种管理对象的方法,可以把中间层对象有效地组织起来。一个完美的框架“黏合剂”。(2) 有利于面向接口编程习惯的养成,使代码结构清晰。(3) 采用了分层结构,可以增量引入到项目中。(4) 目的之一是为了写出易于测试的代码。(5)非侵入性,应用程序对Spring API的依赖可以减至最小限度。(6) 一致的数据访问介面。(7) 一个轻量级的架构解决方案。2.1.3 Hibernate简介:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate优势: (1) Hibernate是JDBC轻量级的封装,占用内存较少,性能比较高。与JDBC相比,如果开发JDBC的人员技术能力非常强,hibernate执行效率会比JDBC弱一些,但是大部分情况是程序员在使用JDBC时是不可能做到最高效率,hibernate可以帮大部分开发人员提高运行效率。(2)可以引入第三方二级缓存,提高系统查询效率,减少系统里存在大量单例类(singleton),大量的单例类,会降低系统的可测试性和面向对象程度。(3)优秀的ORM框架,理论上节省开发人员95%的开发工作量。(4) Hibernate兼容JDBC。理论上可以应用在任何使用JDBC的场景。2.2Internet终端本系统采用的是B/S(Browser/Server)结构,它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。因此本系统访问方式是基于Internet终端的访问,用户只需要通过web浏览器就可以非常方便快捷地使用本系统服务器资源,系统让用户的操作变得简单与透明,系统的维护成本与工作量也得到减少。B/S构架使得本系统有易安装、易升级、成本低、可扩充等优势。2.3Tomcat服务器Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,sun和其它一些公司及个人共同开发而成。由于有了sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和JSP文件或者包含这两种文件的目录,另外还会有一个WEBINF目录,这个目录很重要。通常在WEBINF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和JSP或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB一INF下的lib目录下。Tomcat应用程序的部署很简单,只需将使用者的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,可以在远程通过Web部署和撤销应用。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。因为Tomcat的免费并且具有开放性,功能强大。因此,选择了Tomcat作为独立运行Web服务器和JSP引擎。2.4Mysql数据库MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。3 系统需求分析3.1用例需求3.1.1用例图简介 用例图(Use Case Diagram)是一个UML中非常重要的概念,在使用UML的整个软件开发过程中,Use Case处于一个中心地位。用例是对一组动作序列的抽象描述,系统执行这些动作序列,产生相应的结果。这些结果要么反馈给参与者,要么作为其他用例的参数。用例被认为是第二代面向对象技术的标志。显示多个外部参与者以及他们与系统提供的用例之间的连接。用例是系统中的一个可以描述参与者与系统之间交互作用的功能单元。用例图仅描述系统参与者从外部观察到的系统功能,并不描述这些功能在系统内部的具体实现。本系统所采用的工具为Microsoft Visio 2003。3.1.2 系统总体用例图根据调查及对整个系统分析的结果,按照结构化的系统设计方案,此系统可以分为两种用户,即学生、教师、管理员。其中学生端共有五个用例,分别如下:(1)登录:学生根据自己的用户名和密码登录到系统中。(2)资料管理:学生可以查看、修改自己的个人资料及密码等信息。(3)在线考试:学生可以查看所需要进行的考试科目,若已经考过了则不会显示。(4)成绩查询:学生可以查看已经考过试的相关科目的成绩的相关信息。(5)退出系统:学生突出当前考试系统。图3-1 学生端用例图其中教师端共有六个用例,分别如下:(1)登录:教师根据自己的用户名和密码登录到系统中。(2)学生管理:教师可以增加、查看、修改、删除学生的个人资料及密码等信息。(3)试题管理:教师可以增加考试科目, 删除、修改科目,增删该对应科目下的试题。(4)成绩管理:教师可以查看所有学生的考试相关信息,及学生个人的成绩详细信息。(5)登录管理:教师可以查看相关人员登录该系统的相关情况,查询、删除。(6)退出系统:教师退出当前考试系统。图3-1 教师端用例图其中管理员共有七个用例,分别如下:(1)登录:管理员根据自己的用户名和密码登录到系统中。(2)学生管理:管理员可以增加、查看、修改、删除学生的个人资料及密码等信息。(3)试题管理:管理员可以增加考试科目, 删除、修改科目,增删该对应科目下的试题。(4)成绩管理:管理员可以查看所有学生的考试相关信息,及学生个人的成绩详细信息。(5)登录管理:管理员可以查看相关人员登录该系统的相关情况,查询、删除。(6)教师管理:管理员可以增加教师,修改,删除教师。(7)退出系统:管理员退出当前考试系统。图3-1 管理员端总体用例图3.2功能需求该系统中每种用户端均需要完成不同的功能,包括注册(仅学生注册),学生端,教师端,管理员端。其中注册包括的内容:用户名、姓名、密码、性别、地址、邮箱。3.2.1其中学生端功能需求描述如下:(1)学生登录主页(学生输入正确的用户名和密码登录到学生主页)(2)资料管理: 1. 查看个人资料(学生可以查看自己的个人资料信息) 2. 修改个人资料(学生可以修改自己的个人资料信息) 3. 修改个人密码(学生可以修改自己的个人密码)(3)在线考试: 1. 选择个人要进行的考试科目。 2. 若已经进行了某个科目的考试则不会有该科目的选择。(4)成绩查询: 1. 显示个人已经进行了那几个科目的考试。(科目、科目名称、总分数、所得分数、考试日期、详细情况)。 2. 详细情况(姓名、科目编号、科目名称、题数、总时间、总分、考试时间、交卷时间、得分 )。(5)退出系统: 退出当前考试系统。3.2.2其中教师端功能需求描述如下:(1)教师登录主页(教师输入正确的用户名和密码登录到学生主页)(2)学生管理: 1. 查看学生资料(学生的所有信息)、修改、删除学生。 2. 增加学生(增加学生的所有信息,用户名、姓名、密码、性别、地址、邮箱) 3. 搜索学生(根据学生的姓名)(3)试题管理: 1. 查看所有的科目情况(ID号、科目名称、时间、状态、创建时间、总题数、总分数、维护、操作) 2. 修改所有修改科目(科目名称、时间、状态开发、关闭、描述) 3. 修改所有题目(题号、题目内容、分数、类型、正确答案) 4. 增加科目(科目名称、时间、状态开发、关闭、描述) 5. 增加题目(题目内容、分数、类型单选题、多选题、选项最多八项) 6. 删除科目,题目(所有内容)(4)成绩管理: 1. 可根据科目、姓名、用户名、开始日期结束日期进行查询学生考试信息。 2. 可查看某学生相关科目的信息(题号、正确答案,所答答案、得分)(5)登录管理: 1. 可查询所有用户的登录情况(包括学生、教师的用户名、IP地址、成功/失败、登录时间) 2. 可根据开始日期结束日期进行查询。 3. 删除查询到的相关情况。(6)退出系统:退出当前考试系统。3.2.3其中管理员端功能需求描述如下:(1)教师登录主页(教师输入正确的用户名和密码登录到学生主页)(2)学生管理: 1. 查看学生资料(学生的所有信息)、修改、删除学生。 2. 增加学生(增加学生的所有信息,用户名、姓名、密码、性别、地址、邮箱) 3. 搜索学生(根据学生的姓名)(3)试题管理: 1. 查看所有的科目情况(ID号、科目名称、时间、状态、创建时间、总题数、总分数、维护、操作) 2. 修改所有修改科目(科目名称、时间、状态开发、关闭、描述) 3. 修改所有题目(题号、题目内容、分数、类型、正确答案) 4. 增加科目(科目名称、时间、状态开发、关闭、描述) 5. 增加题目(题目内容、分数、类型单选题、多选题、选项最多八项) 6. 删除科目,题目(所有内容)(4)成绩管理: 1. 可根据科目、姓名、用户名、开始日期结束日期进行查询学生考试信息。 2. 可查看某学生相关科目的信息(题号、正确答案,所答答案、得分)(5)登录管理: 1. 可查询所有用户的登录情况(包括学生、教师的用户名、IP地址、成功/失败、登录时间) 2. 可根据开始日期结束日期进行查询。 3. 删除查询到的相关情况。(6)教师管理: 1. 查询所有教师的信息(ID、用户名、密码) 2. 修改教师、管理员的密码。 3. 增加教师(用户名、密码)(7)退出系统:退出当前考试系统。3.3性能需求3.3.1安全性要求 由于在线考试系统的使用人数会非常大,所有在对用户信息导入和查询时要保证速度,在用户出题选题审题过程中又要保证事务的完整性。对于整个系统,需要完整的权限控制,防止某些人恶意的攻击系统,修改原始记录。同时对于数据库中的数据需要定时备份,防止系统数据丢失。3.3.2性能要求 在线考试系统的性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,在线考试系统应该满足以下的性能需求。1 系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足对信息处理的需求。由于在线考试系统的在线考试功能对于整个系统的功能和性能完成举足轻重。在线考试系统要确保在线考试过程中有一定的处理突发事件的能力,且在提交试卷后,所评阅的试卷的失误率要保证最小,保证成绩的准确性和真实性,所以在系统开发过程中,必须采用一定的方法保证系统的准确性。 2 系统的开放性和系统的可扩充性 在线考试系统在开发过程中,应该充分考虑以后的可扩充性。例如在线考试的题型的改变,试卷的类型的改变,考生交流的功能也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3 系统的易用性和易维护性 在线考试系统是直接面对考生的,而大多数考生往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 在线考试系统中涉及到的数据(比如考生信息、成绩)是企业的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。 4 系统的标准性 系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。4 系统总体设计4.1总体软件架构设计4.1.1层次架构模式集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。4.1.2基本处理流程根据本系统特点,本文设计实现了系统的软件架构为SSH框架,SSH框架将服务器端应用分为DAO层、Service层、Action层、Spring容器层、视图层,各层之间通过接口连接。DAO层完成数据库增加、删除、修改等细节,DAO层将底层数据库访问操作和业务逻辑分开,对业务层提供面向对象的访问接口。Service业务层提供了处理应用程序的业务逻辑和业务校验。控制层的控制器Action接受用户的输入并调用业务层的业务方法和表示层的组件去完成用户的请求。服务器的各种组件的生成都是由Spring容器来控制,Spring容器提供了依赖注入、实例管理、事务处理等服务。视图层是用户看到并与之交互的界面,视图向用户显示相关的数据,并能接受用户的输入数据,但不能进行任何实际的业务处理。SSH架构设计图如下所示:图4-1 SSH架构设计图SSH框架的工作处理流程说明、原理以及为什么要用。原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射3.通过config.buildSessionFactory();/创建SessionFactory4.sessionFactory.openSession();/打开Sesssion5.session.beginTransaction();/创建事务Transation6.persistent operate持久化操作7.session.getTransaction().commit();/提交事务8.关闭Session9.关闭SesstionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。说明:1. 将Struts视图层产生请求提交给控制层,控制层根据配置文件决定使用哪些拦截器、Action类。2. 请求经过一系列拦截器,根据不同的请求级别,拦截器做出不同的处理。3. 调用Struts2的Action,Spring容器通过配置文件中bean的ID自动装配Action。4. Spring容器定位Action对应的业务逻辑。