版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、三 层 构 架论 文 题 目: 三层构架的研究与分析 学 院 名 称: 专 业: 班 级: 姓 名: 学 号: 指 导 教 师: 定稿日期: 2020 年 11 月 05日摘要现在,计算机在学校被广泛的应用到教学中。在传统的出卷方式上,需要老师花费一定的时间和精力去查询,翻阅书籍来组成一份比较满意的试卷。与此同时老师考虑试题的各方面。这给老师带来了很多的不便。而现在的题库管理系统大多是C/S系统,不利于老师之间的交流和使用方便。采用B/S模式开发的系统则减少了老师的工作量,使老师的工作信息化、网络化、高效化。而基于Internet的三层或多层应用系统也是信息技术发展的必然趋势。三层应用系统将数
2、据存储层、数据访问层和业务逻辑层完全分开,这样就有利于对数据进行集中管理,同时也达到了让开发人员只关注三层中的某一层,使开发出来的程序具有较好的复用性。关键词:试题,管理系统,三层构架,便捷高效ABSTRACTNow, the computer has been widely applied to teaching in school. In the traditional paper design, teachers need to spend some time and energy to query, browse books to form a satisfactory exam pa
3、per. At the same time teachers consider each item. This has brought a lot of inconvenience to the teacher. But the question bank management system now most of the C/S system, is not conducive to the exchanges between the teacher and the use is convenient. Using the system B/S development model will
4、reduce the workload of teachers, make teachers work information, networking, high efficiency. While the Internet based three layer or multilayer application system is the inevitable trend of the development of information technology. The three layer application system to the data storage layer, data
5、 access layer and business logic layer are separated completely, which will be conducive to the centralized management of data, but also to let the developers focus only on the three layer of a layer, make the developed program has good reusability.KEYWORDS: Examination, Management system, Three tie
6、r architecture, Convenient and Efficient3目录第1章绪论- 1 -1.1研究背景及意义- 1 -1.2研究现状概述- 2 -1.3研究内容- 3 -第2章需求分析- 4 -2.1界面需求分析- 4 -2.2功能需求分析- 4 -2.3性能需求分析- 6 -2.4其他要求- 6 -第3章可行性分析- 6 -3.1经济可行性- 6 -3.2技术可行性- 7 -3.3运行可行性- 7 -第4章开发工具及技术介绍- 8 -4.1相关技术介绍- 8 -4.1.1JSP技术- 8 -4.1.2Struts2- 9 -4.1.3Hibernate- 10 -4.1.4
7、三层架构调用- 12 -4.2开发工具介绍- 13 -第5章概要设计- 13 -5.1系统功能部署- 13 -5.2程序结构图- 17 -5.3程序调用- 17 -第6章详细设计- 18 -6.1业务逻辑和数据访问的定义与实现- 18 -6.2部分效果图- 19 -第7章结束语- 21 -7.1总结与展望- 21 -第1章 绪论1.1 研究背景及意义三层架构通常是指将业务应用划分为:表现层、业务逻辑层、数据访问层。表现层是为用户提供交互操作界面,即用户在使用一个系统的时候他所看见的界面。业务逻辑层负责关键业务的处理和传递数据,它是对数据层的操作,对数据业务逻辑进行处理。数据访问层是实现数据库访
8、问,即对数据进行增加、修改、删除、查询等操作。区分层次的目的是为了实现程序之间“高内聚,低耦合”的思想。三层构架使业务很好的区分开,使代码具有很好的维护性。在学校,计算机也被广泛的应用到教学中。在传统的出卷方式上,需要老师花费一定的时间和精力去查询,翻阅书籍来找到合适的题目,在通过适当的组合后才能组成一份比较满意的试卷。与此同时老师也需要考虑好试卷的难易程度,所需要的题型,要涉及哪些知识点。这给老师带来了很多的不便。而现在的题库管理系统大多是C/S系统,这样不利于老师之间的交流和使用方便。采用B/S模式开发的系统则可以让老师随时随地使用该系统,不需要受地域的限制。同时题库管理系统也可以通过添加
9、试题来不断增加题目数量,让老师不断的积累。最重要的是它可以提供手动或自动组卷的功能,这样就代替了老师人工翻阅书籍,查找试题的工作,只需要点点鼠标,就可以轻松的组成一套试卷。使用题库管理系统减少了老师的工作量,使老师的工作信息化、网络化、高效化。而基于Internet的三层或多层应用系统也是信息技术发展的必然趋势。三层应用系统将数据存储层、数据访问层和业务逻辑层完全分开,这样就有利于对数据进行集中管理,同时也达到了让开发人员只关注三层中的某一层,使开发出来的程序具有较好的复用性。业务逻辑层只负责处理与业务相关的逻辑,这样就方便以后系统的维护。我们只需要维护几台应用服务器,应用客户端的程序可不作改
10、动,这样可减少工作量,节省维护费用。1.2 研究现状概述在三层架构模式下通常采用MVC设计模式。MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范。模型是应用程序的主体部分,用于表示业务数据或者业务逻辑。视图是展现给用户的界面,用来与用户进行交互。控制器用来控制用户界面数据显示,它根据用户的输入,更新模型对象的状态。MVC模式不仅使功能模块和显示模块分离,同时它还让应用系统具有可维护性、可移植性、可扩展性和组件的可复用性。现在被企业广泛使用的Struts是基于MVC经典设计模式的开放源代码的应用框架
11、。Struts将Model、View、Controller分别映射到Web应用中的组件。Controller负责控制流程,又ActionServlet负责读取struts-config.xml,并使用ActionMapping来查找对应的Action;Model由系统状态Bean ActionForm和商业逻辑JavaBean来创建,View是由JSP和Struts提供的自定义标签来实现。而现在经常使用的SSH2框架就是Struts2+Spring+Hibernate三个框架的整合。使用Hibernate层来操作数据库,将Struts2的请求委托给Spring来进行管理,然后调用Struts2
12、的Action类进行页面处理。1.3 研究内容该系统技术研究的主要内容包括以下方面:三大基础技术 JSP/JavaBean/Servlet三大核心框架 Struts2/Spring/Hibernates集成开发环境 Myeclipse采用B/S开发模式,在使用Myeclipse为开发环境的基础下,使用Mysql进行数据库开发,将Java作为主要开发语言。掌握JSP、JavaBean、Servlet的基础知识,了解JSP+JavaBean+Servlet的运行机制。在此同时运用Struts和Hibernate框架,将代码进行分开,使代码具有较好的维护性。在视图层采用Struts2标签和JSP相结
13、合;业务实体使用Hibernate来操纵数据库;业务逻辑层采用Struts和Servlet技术,使框架能够完美结合。在功能上要实现用户登录,添加知识点,查询试题,根据查询后的结果对试题进行修改、删除,手动组卷,自动组卷,根据试卷名查询该试卷拥有的题目,添加试卷名,删除试卷名等功能。第2章 需求分析2.1 界面需求分析进入系统时出现人性化的界面,方便使用,符合大部分人的使用习惯,提供各个菜单选项,在输入输出数据或操作成功或出错时给予信息提示,界面要有轻松简洁、易用、友好美观等特点。2.2 功能需求分析题库管理系统主要目的是利用网页能够实现对题库的增加、修改、删除、查询等功能,使老师对题库的管理更
14、加容易,提高工作效率。通过分析,本系统的功能需求如下:对于管理员:需要为用户提供登录本系统的功能,即管理员可以通过登录界面在用户名和密码输入正确的情况下进入本系统,如果错误给予错误信息提示。需要为用户提供添加增加新用户的功能,即管理员可以增加新的用户,在信息填入错误时给予错误提示。需要为用户提供删除用户的功能,即管理员可以删除用户,出现错误时给予错误提示。对于老师:需要为用户提供更改密码的功能,即教师可以通过登录界面在用户名和密码输入正确的情况下进入本系统,如果错误给予错误信息提示。需要为用户提供知识点设置的功能,即教师可以添加知识点,知识点不允许重复,如果填入错误则给予错误提示。需要为用户提
15、供查询试题的功能,即教师可以根据题目类型,难度,知识点进行模糊查询,如果没有查到相应信息,给予提示,否则就显示查出的结果。需要为用户提供查询试卷的功能,即教师可以根据试卷名称查询该试卷中包含的题目,并能删除题目,在输入有误的情况下给予错误提示。需要为用户提供更改试题的功能,即教师可更改题目信息,无论成功或失败均给予信息提示。需要为用户提供删除试题的功能,即教师可删除题目,无论成功或失败均给予信息提示。需要为用户提供手动组卷的功能,即教师可根据查询到的结果将题目加入试卷,输入有误时给予信息提示。需要为用户提供自动组卷的功能,即教师可以根据输入题目类型的题目个数,难度百分比,来进行自动组卷。需要为
16、用户提供增加试卷的功能,即教师可以添加试卷名,在试卷名重复时给予错误提示。需要为用户提供删除试卷的功能,即教师可以删除试卷名,成功或失败给予信息提示。需要为用户提供导出试卷的功能,即教师可以将完成后的试卷导成一个word文档。2.3 性能需求分析性能要求如下:数据准确度:查询时保证在相关域中输入关键字的记录都可以查到,同时保证查询的准确率。时间特性:一般的操作响应时间应该在1-2秒。2.4 其他要求系统的安全性:对于系统的重要数据要有密码保护措施,具有一定的安全性。系统的容错性:用户输入错误数据有提示信息,具有较好的容错性能。第3章 可行性分析可行性研究的目的是对开发的软件系统,从工程、经济、
17、技术等角度证明系统的可行性。3.1 经济可行性现在,计算机已经非常普遍,价格低廉,性能有很大的提高,而本系统的开发并不需要很大的服务器,只要普通的电脑就可以完成。并且本系统能为学校老师的工作效率带来了很大的提高,主要表现在以下两个方面:第一:本系统的运行可以省去老师到处找题目的时间,只要老师平时注意积累,在需要的时候可以很快找到题目,再通过手动或自动组题,加以修改,就可以很轻松的得到一份试卷。第二:本系统的运行可以使老师之间的资源共享,方便老师之间的交流,由于系统的运行不受地域限制,使老师的使用更加的方便。所以综上所说该系统在经济上具有可行性。3.2 技术可行性本系统使用Myeclipse作为
18、开发工具进行开发,它提供了完善的类库和jar包,具有操作简单易使用的特点。同时它提供了部分代码自动生成的功能,使开发变得更加简单。使用Java作为主要编程语言,Java作为面向对象的程序设计语言,具有通用性、高效性、平台移植性和安全性的特点,使编程更为方便。同时使用了Struts和Hibernate框架,使程序层次分明,有利于以后的扩展和修改。而且Hibernate中提供了反向工程生成,使在连接数据库和生成持久化类时可以通过界面完成操作,不需要手动编写代码。所以综上所述,该系统在技术上具有可行性。3.3 运行可行性本系统为小型的题库管理系统,所耗费的资源非常小,学校的电脑无论是硬件还是软件都能
19、够满足,因此,本系统在运行上是可行的。第4章 开发工具及技术介绍4.1 相关技术介绍4.1.1 JSP技术JSP的全名是Java Server Page,它是Servlet的简化设计,它实现了在HTML文件中插入Java语句(以 形式)。JSP与Servlet一样,都是在服务器端运行的代码,通常呈现给客户端的就是一个HTML文本,因此客户端只要有浏览器就可以浏览。JSP引擎会将JSP语法外的这部分信息直接传到出去而不做任何处理,例如代码中的HTML部分,这些数据会直接传送到客户端的浏览器,而JSP的元素则由JSP引擎处理完成后连同JSP文件中的HTML代码一起传送到客户端。插入的Java程序段
20、可以进行重新定向、操作数据库等,从而实现动态网页所需要的功能。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。4.1.2 Struts2Struts框架体现了MVC设计模式的概念。虽然Struts拥有很多优点:使用MVC模型、功能齐全的标签
21、库、开放源代码。但是Struts本身也有不少的缺点:需要编写的代码过多、容易引起“类爆炸”、单元测试困难等。这些缺点随着Web的发展越来越明显,这就促使了Struts2.0的产生,它的诞生能很好的解决这些问题。Struts2在页面的请求处理流程上和Struts类似,仍然以前端控制器框架为主体的框架,用户的请求会通过控制器选择不同的Action来执行具体的操作,在Action类中所有的Servlet对象仍然可用。而Struts2与Struts的不同主要体现在以下几个方面。Action类在Struts中都是使用抽象类编程而不是接口,而Struts2则是基于接口编程。线程模式Struts的Actio
22、n是单例模式并且必须是线程安全的,而Struts2的Action对象为每一个请求产生一个实例,没有线程安全问题。Servlet依赖Struts的Action依赖于Servlet ApI,Struts2的Action不依赖于容器,允许Action脱离容器单独测试。可测试性Struts测试需要依赖于容器,而Struts2 Action的类是POJO类,因此可以直接编写测试类来测试Action类。捕获输入Struts使用ActionForm对象捕获用户输入,Struts2直接使用Action属性作为输入属性。表达式语言Struts2不但支持JSTL,它同时也支持OGNL。类型转换Struts的Act
23、ionForm属性通常都是String类型,并使用Commons-Beanutils进行类型转换。Struts2使用OGNL进行类型转换,提供了基本和常用对象的转换器。数据校验Struts支持在ActionForm的validate()方法中手动校验,Struts2支持通过validate()方法来进行校验。Action执行的控制Struts支持每一个模块有单独的生命周期,但是模块中的所有Action必须共享相同的生命周期,Struts2通过拦截器堆栈为每一个Action创建不同的生命周期,堆栈能够根据需要和不同的Action一起使用。4.1.3 HibernateHibernate是一个JD
24、O工具,它的工作原理是通过文件把值对象和数据库表之间建立一个映射关系,这样,我们就只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。Hibernate提供的HQL是一种类似SQL语言,它提供对象化的数据库查询方式。Hibernate是关系数据库和Java应用关系之间的桥梁,它主要负责关系数据库和Java对象之间的映射。Hibernate是基于JDBC之上的,它在内部对JDBC进行非常轻量级的封装,使程序员可以用面向对象思维来操作数据库。它向上层应用提供了面向对象的数据访问API。在Java中使用Hibernate包括以下步骤:编写Hibernate的配置
25、文件hibernate.cfg.xml文件:该文件除了基本的Hibernate配置信息,也可以指定具体的持久化类的映射文件。编写Hibernate映射文件:它负责持久化类与数据库表之间的映射,即描述了数据库中表的信息,也描述了对应的持久化类的信息。编写持久化类:一张数据库表对应一个持久化类,通过映射文件将它们进行关联。以上三步是开发Hibernate要实现的关键内容。接下来就要向面向Web层进行编码,通常分为Dao层和Service层:编写DAO层:通过HibernateAPI编写访问数据库的代码。编写Service层:编写业务层实现,调用DAO层类来编写代码。4.1.4 三层架构调用用户请求
26、返回结果返回返回返回传递参数请求数据操作处理JSP操作数据表示层数据库数据访问层业务逻辑层表示层后台代码当用户发送一个请求时,表示层接收到用户的请求并将用户填入的数据传入到表示层的后台代码,后台将数据传入到业务逻辑层,业务逻辑层再将数据操作传入到数据访问层,通过数据访问层将需要的操作的数据对数据库进行操作,完成操作后,将返回结果返回到数据访问层,然后再返回到业务逻辑层,再到表示层后台代码,最后将结果在表示层显示。通过上面的调用过程可以很清楚的看到,三层架构将程序的层次分开,使模块之间的耦合度降低,这样就可以实现当数据库或用户界面发生改变时不需要重新开发,只需要做简单的调整即可。4.2 开发工具
27、介绍本系统采用MyEclipse进行开发,MyEclipse是企业级工作平台,具有非常强大的功能,支持十分广泛,它主要用于J2EE、Java等项目的开发,它是Eclipse的一个插件合集。只是Eclipse是免费的,而Myeclipse需要付费才能使用。利用它我们可以在JavaEE的开发、发布以及应用程序服务器的整合方面和数据库上提高工作效率。它具有完整的JavaEE集成开发环境,包括编码、调试、测试和发布功能,支持Struts,JSP,CSS, HTML,Javascript,Spring, Hibernate,SQL,数据库链接工具等多项功能。它本身还自带了Tomcat和jar包,用户在需
28、要使用的时候只需要导入相应的jar就能使用了,省去了查找时间。第5章 概要设计5.1 系统功能部署系统功能部署用来描述系统对外表现出的功能模块的组成。对于老师:题库管理系统用户登录用户管理设置题库管理查询修改密码知识点设置录入试题修改试题删除试题试题查询试卷查询手动组卷添加试卷组卷自动组卷试卷管理删除试卷图5-1 老师功能部署业务流程:用户登录:教师可以通过登录界面进行登录,在用户名和密码输入错误或其中一个没有输入时给予信息提示,用户名和密码都正确后进入教师的主界面。修改密码:教师进入修改密码页面后,进行修改密码操作,需要填写原来密码和新密码,新密码需要输入两遍,在原密码和两次新密码输入都正确
29、的情况下,修改密码成功,跳转到主页面,否则给予错误信息提示。知识点设置:教师进入知识点设置界面后,写入需要添加的知识点,如果该知识点已经存在或用户没有输入,则提示该知识点已存在或用户必须输入信息,否则将知识点添加到数据库中,并返回到此页面,提示添加成功。录入试题:教师进入增加试题页面,填写试题基本信息,其中试题内容必须填写,在试题有图片时可以通过打开文件,将图片复制到D盘项目的questionSrc文件夹下,并将图片的url保存到数据库中,添加成功将给予信息提示。修改试题:先进入试题查询页面,输入关键字后,得到符合关键字的试题信息,点击修改链接,进入修改页面,修改需要修改的试题信息,成功后将提
30、示修改成功信息。删除试题:先进入试题查询页面,输入关键字后,得到符合关键字的试题信息,点击修改链接,进入删除页面,点击删除按钮进行删除,成功后将提示删除成功信息。试题查询:进入试题查询页面,输入关键字后,得到符合关键字的试题信息。试卷查询:进入试卷查询页面,输入试卷名后,得到该试卷名所拥有的题目信息,能并删除试题。手动组卷:进入试题查询页面,输入关键字和试卷名后,得到符合关键字的试题信息,勾选复选框,将所勾选的题目加入填入的试卷名,成功后跳转到试卷查询页面。自动组卷:进入自动组卷页面,输入试卷名,输入各个题目类型所需要的题目个数,各个难度的百分比后,点击自动组卷,组卷成功跳转到试卷查询页面,如
31、果试卷名、题目个数、难度输入有误则给予错误提示。添加试卷:进入添加试卷页面,输入想要添加的试卷名,如果该试卷名以存在则给予错误提示,否则就提示添加成功。删除试卷:进入删除试卷页面,输入想要删除的试卷名,如果该试卷名不存在,则提示错误信息,否则提示删除成功。题库管理系统用户登录用户管理增加用户删除用户业务流程:用户登录:管理员可以通过登录界面进行登录,在用户名和密码输入错误或其中一个没有输入时给予信息提示,用户名和密码都正确后进入管理员的主界面。增加用户:管理员在点击增加用户链接后,进入增加用户界面,管理员需要填用户名,职称等信息,密码默认为“888888”,职位默认为“教师”,点击添加用户按钮
32、后返回到管理员管理的主界面。如果用户名和职称没有填写,则给予错误信息提示。删除用户:管理员点击删除链接后,删除完成返回到管理员主界面。5.2 程序结构图数据访问层主要使用Hibernate配置文件以及实体类和映射文件,使用DAO接口和DAO实现类即上图的entity包、dao包和dao.impl包来实现。业务逻辑层主要使用业务逻辑组件接口和业务逻辑组件实现类,即上图的service包和service.impl包来实现。表示层主要使用JSP和Action来实现,即WebRoot和action包来实现5.3 程序调用用户在JSP页面请求,通过JSP中的 在Struts.xml中找到对应的Actio
33、n,将相应的数据传入到Action中,在Action中调用业务逻辑组件service.impl,在业务逻辑组件中调用数据访问层dao.impl,数据访问层在对数据库进行具体的操作,将操作后的结果一层一层返回,直到返回到JSP页面上。第6章 详细设计6.1 业务逻辑和数据访问的定义与实现此系统包含业务实体和持久层设计、业务逻辑和控制层设计、视图层设计。其中的业务实体和持久层设计、视图层设计由其他两位同事负责,在此我就不详细介绍。业务逻辑和控制层设计主要是表示层和数据库的沟通桥梁。该系统主要包括登录、用户设置、知识点设置、题库管理、查询、组卷、试卷管理模块,大多数模块中的功能实现原理相同,所以以试题的增加、修改、删除为例、查询为例来说明如何实现:DAO接口DAO接口主要是定义操作数据库各个方法的接口,它没有具体的实现方法,只有方法名。一般包括添加、修改、删除、查询方法。下面是定义了ShtDao接口,包括添加、更新、删除试题,根据ID、题型、知识
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论