本站APP,内容更劲爆

手机先锋影院在线观看

类型:明星假戏真版视频网站 地区: 韩国 年份:2020-07-08

剧情介绍

学士学位论文(设计)Bachelor’sThesis论文题目基于jsp的在线考试系统设计摘要:在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统—JAVA在线考试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能。本论文主要介绍了对JAVA在线考试管理子系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线管理子系统的设计过程进行详细的说明。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与还原。本毕业设计的内容是设计并且实现一个基于web技术的在线考系统,故而系统主要以j2EE作为开发基础,主要使用了struts+spring等多种协议或技术,用eclipse作为开发工具,以MYSQL作为数据库,以Macromedia公司的Dreamweaver作为界面美化工具。基本实现了网上考试系统应有的主要功能模块,包括:管理员的登录,管理和维护;用户注册、登录、注销,个人信息的查询、修改;考试管理,套题管理,成绩管理。该系统界面简单、操作方便,容易维护。关键词:在线考试j2EEstruts+spring中图分类号:TP393.1OnlineExaminationSystemXiaosha(Tutor:HuSiyou)(CollegeofComputerScienceandTechnology,HubeiNormalUniversity,Huangshi435002,China)Abstract:Onlineexaminationsystemtoachievepaperlessmanagementofexaminations,theexaminationofsomesubjectsthroughtheInternetorLAN,tofacilitatethemanagementoftheschoolExamination,candidatesarealsoconvenient,especiallyforcandidateswidelydistributed,easytofocusondistanceeducation.Thebackgroundofmymaindevelopmentsystemmanagementsystem-JAVA-lineexaminationmanagementsubsystem,whichincludesquestionsmanagement,candidatemanagement,on-lineproductionofpapers,controlofstudenttestset,paperprocessingandotherfunctions.ThispaperintroducesonlineexaminationmanagementsubsystemontheJAVAanalysis,designanddevelopmentofthewholeprocess.UsingERdiagram,processflowchartsandotheron-linemanagementsubsystemdesignprocessdetail.Paperisdividedintodevelopmentprograms,requirementsanalysis,systemdesign,keytechnicalsolutions,theconclusionoffiveparts.Developmentprogramintroducesthedevelopmentofonlineexaminationsystemwasthepurpose,developmentplananddevelopmentframeworkforthechoiceofidentificationtechnology;demandanalysisdescribestheoveralldemandforonlineexaminationsystemandthesystemfunctionalrequirementsofeachmodule;systemdesignedfortheguidancesystemdesignthinking,databasedesign,systemdesignmodule;keytechnologyintroducedtobeaddressedinthedetailedrealizationofsometechnologies,suchastheintegrationoftechnologydevelopmentframework,developmentframeworkandthedatabaseconnectionanddatabackupandrestore.Thecontentsofthisgraduationprojectistodesignandimplementaweb-basedtechnology,onlineexaminationsystem,Guersystembasedmainlyj2EEasthedevelopment,mainlyusingstruts+springandotheragreementsortechnology,usingeclipseasadevelopmenttooltoMYSQLasthedatabasetoMacromedia'sDreamweaverasalandscapingtoolinterface.Basicallyanonlineexaminationsystemshouldbethemainfunctionalmodules,including:anadministrator'slogin,managementandmaintenance;userregistration,login,logout,personalinformation,access,correction;testmanagement,problemsetsofmanagement,performancemanagement.Thesysteminterfaceissimpletooperate,easytomaintain.Keywords:OnlineExamination;j2EE;struts+spring目录1.1课题目的和意义12.1JSP技术介绍12.1.1JSP的概述12.1.3JSP的强势与劣势32.1.4JSP与ASP的比较32.2Java组件JavaBeans42.2.1什么是JavaBeans42.2.2JSP与JavaBeans的关系42.3J2EE概述52.4关于Spring62.4.1Spring简介62.4.2为什么需要Spring72.5关于B/S开发模式92.5.1为什么引入B/S开发模式92.6.1mysql的特点92.6.2mysql的安装和配置(部分截图)102.7Tomcat服务器122.7.1Tomcat服务器简介122.7.2Tomcat的特点122.7.3Tomcat的优势122.7.4Tomcat服务器的安装和配置123.1系统功能需求133.2系统角色及其功能分析143.2.1系统的2个角色:143.2.2系统角色的功能143.3总体设计思想概述153.4数据库设计163.4.1E-R图163.4.2数据表的设计163.5系统的类设计183.5.1DAO类设计183.5.2connDB类设计(部分)183.5.3过滤器类设计183.5.4监听器类设计193.6系统的用例图203.6.1总体用例分析203.6.2用户管理用例分析213.6.3考试管理用例分析213.6.4考试题目管理用例分析223.6.5成绩管理用例分析224.1数据库与connDB类映射的实现234.2主要模块的设计说明与界面234.2.1用户管理模块234.2.2考试管理模块314.3系统的测试325.1工作总结335.2后续工作展望34参考文献351.1课题目的和意义现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。2.1JSP技术介绍2.1.1JSP的概述JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如ASP,PHP等,主要用于开发动态网页内容。JSP是新一代的动态内容编程技术,它继承了Java技术的“一次编写,随处运行”的特性,允许Web开发人员开发和维护与平台无关,信息丰富动态的Web页面,包括HTML,DHTML,XHTML和XML,它能使Web开发人员轻易搭建网络平台,建立起功能强大的Web网站。JSP可以把用户界面从内容层次中分离出来,使得Web开发人员不必修改在底层的动态内容,就可以修改整体的页面布局。2.1.2JSP的运行机制JSP文档被复制到Web服务器的文档目录中。当有人请求这个文档时,服务器识别出这个带有.jsp扩展名的文档,并意识到需要做特殊处理。第一次请求这个文档时,它被编译成一个servlet对象,并存储在内存中,然后输出内容回送给发出请求的用户机。第一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果没有变化,服务器调用先前编译过的servlet对象。JSP请求的步骤如图2-1所示。(1)用户机请求一个JSP页面。(2)JSP引擎编译该JSP成一个servlet。图2.1一个JSP的请求步骤(3)生成的servlet被编译并装载。(4)编译的servlet服务请求并把一响应发送回用户机。JSP主要是针对Java程序处理不熟悉的人设计的。与Servlet相比,JSP有如下两个优势:方便与HTML混合;在开发、测试方面比Servlet方便。2.1.3JSP的强势与劣势JSP的强势:(1)可移植性。JSP是用Java开发的,因此它是可移植的,可以一处编写,随处运行,支持多平台。(2)有效性。JSP的初始化代码仅在Web服务器第一次加载时执行一次。一旦加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要全部加载一个完整的可执行程序相比,这是一个相当有效的技术。(3)强大的可伸缩性和可扩充性。它能够在面向对象的语言(Java)中进行开发,并可以在现有对象基础上进行扩展,形成新的对象,从而更好地满足用户的需求。(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)JavaServlet是一种开发Web应用的理想框架。JSP以Servlet技术为基础,又在许多方面作了改进。利用跨平台的JavaBeans组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP的劣势:(1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性,Java系统中包括JRE,JDK,J2EE,EJB等多种产品,这就需要大量的学习和培训才能掌握它们,将它们有效地搭配在一起,灵活地加以运用。(2)Java的运行速度快是由于用户将class常驻内存,这样使用的内存空间就比较大。另一方面,它还需要硬盘空间来存储一系列.Java文件和.class文件以及对应的版本文件。(3)JSP只有对Java相当熟悉的人才能用得很好。(4)JSP程序调试困难。2.1.4JSP与ASP的比较JSP与ASP(ActiveServerPage)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:(1)Web服务器的支持:大多数通用的Web服务器如:Apache、Netscape和MicrosoftIIS都支持JSP页面,只有微软本身的MicrosoftIIS和PersonalWebServer可以支持ASP。(2)平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于一直到其它平台上。(3)组件模型:JSP是建立在可重用的、跨平台的组件(如:JavaBeans、EnterprisesJavaBeans和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。(4)脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。(5)安全性:JSP使用Java安全模型,而ASP使用WindowsNT的安全结构。(6)与Access数据库的连接:JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用DataActiveObjects。(7)用户定制的标签:JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的[。2.2Java组件JavaBeans2.2.1什么是JavaBeansJavaBeans事实上有三层含义。首先,JavaBeans是一种规范,一种在Java(包括JSP)中使用可重复使用的Java组件的技术规范。其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public类型的类。最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。2.2.2JSP与JavaBeans的关系使用JSP技术,Web页面开发人员可以使用HTML和XML标识来设计和格式化最终页面。使用JSP标识或者小脚本生成页面上的动态内容。生成内容的逻辑被封装在JSP标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。核心逻辑封装在标识和Beans中,可以方便页面设计者编辑和使用JSP页面。在服务器端,JSP引擎解释JSP标识和小脚本生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库),并且将结果以HTML(或XML)页面的形式发送回浏览器。绝大多数JSP页面依赖于可重用的跨平台的足见(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的复杂的处理。这样的好处是开发人员能够共享和交换执行普通操作的组件,加速了总体开发过程。因此,基于Web的较为复杂的应用程序(如JSP开发网站或网上MIS),JSP的复杂架构必须由JavaBeans达成。2.3J2EE概述J2EE(Java2PlatformEnterpriseEdition)是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java2PlatformMicroEdition)、适用于桌面系统的J2SE(Java2PlatformStandardEdition)和适用于企业级应用的J2EE(Java2PlatformEnterpriseEdition)。Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。各个平台开发商按照J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。由于它们都遵循了J2EE规范,因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EEBlueprints。J2EEBlueprints提供了实施J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用J2EEBlueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。J2EEBlueprints是开发人员设计和优化J2EE组件的基本原则,同时为围绕开发工作进行职能分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。J2EE的优势主要有以下几点:(1)高效的开发:J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:状态管理服务--让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。(2)持续性服务:让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式共享数据对象CACHE服务,让开发人员编制高性能的系统,极大提高整体部署的伸缩性。(3)支持异构环境:J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许用户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。(4)可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新用户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。(5)稳定的可用性:一个服务器端平台必须能全天候运转以满足公司用户、合作伙伴的需要。这是实时性很强商业系统理想的选择。2.4关于Spring2.4.1Spring简介Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能◆范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。2.4.2为什么需要Spring你可能正在想“Spring不过是另外一个的framework”。当已经有许多开放源代码(和专有)J2EEframework时,我们为什么还需要SpringFramework?Spring是独特的,因为若干个原因:◆它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。◆Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。◆它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。2.4.3Spring带给我们什么 ◆方便解耦,简化开发通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。◆AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。◆声明式事务的支持在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。◆方便程序的测试可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。◆方便集成各种优秀框架Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。◆降低JavaEEAPI的使用难度Spring对很多难用的JavaEEAPI(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些JavaEEAPI的使用难度大为降低。◆Java源码是经典学习范例Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。2.5关于B/S开发模式2.5.1为什么引入B/S开发模式B/S开发模式伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于用户端程序,因此,必然导致以下问题:a) 系统安装、调试、维护和升级困难。由于用户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个用户端分别进行配置,同样,在软件升级时也要对用户端分别处理。b) 在整个系统中,业务逻辑和用户界面都集中到了用户端,必然会增加安全隐患。B/S模式带来了巨大的好处:a) 开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的用户端只有浏览器,网络管理人员只需要做硬件维护。b) 良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有用户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。2.6MYSQL数据库2.6.1mysql的特点MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.6.2mysql的安装和配置(部分截图)图2-4mysql安装图(开始)安装时一般采用默认路径:图2-5mysql安装图(路径)图2-6sql安装图(数据库类型)为了支持中文,在下面的列表框中学者gb2312(切记)图2-7mysql安装图(语言)图2-8mysql安装图(等待成功)2.7Tomcat服务器2.7.1Tomcat服务器简介Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。  Tomcat中采用了Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。2.7.2Tomcat的特点在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。2.7.3Tomcat的优势Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。2.7.4Tomcat服务器的安装和配置在开始安装之前,先准备J2SDK和TOMCAT两个软件,如果已经安装了J2SDK,就只需TOMCAT即可。(1)需设置的环境变量变量名:CATALINA_HOME变量值:D:\ProgramFiles\tomcat6.0变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib;%CATALINA_HOME%\common\lib(2)安装完成后,打开tomcat服务器,启动浏览器,在地址栏上输入:http://localhost:8080/若出现以下界面说明安装成功。图2-9tomcat启动页面小结本章全面介绍本系统所用到的关键技术和工具,其中jsp作为javaweb开发的基础,对它的运行机制要理解,同时还要明白它的优劣势;j2ee作为开发的标准也作了简单介绍。而SSH(struts+spring+hibernate)作为本系统的核心与亮点技术,更是作了详细介绍,要掌握他们的工作原理,主要功能。最后介绍了本系统使用的数据库mysql以及tomcat服务器的安装与配置。只有掌握了这些技术基础,才能使本系统的开发正常进行。3.1系统功能需求图3-1系统功能模块如图3-1所示,在本系统中主要阐述用户管理、考试管理、成绩管理、题目管理四个模块。(1)考试管理:实现选择课程,准备考试,开始考试,自动阅卷,显示考试成绩等。(2)题目管理:实现试题库中试题的分类和增加,删除,以及答案的设置等。(3)成绩管理:实现前台用户的成绩查询,后台管理员对成绩的查询。(4)用户管理:实现用户注册、用户信息修改、用户查询功能。3.2系统角色及其功能分析3.2.1系统的2个角色:(1)注册用户(2)管理员3.2.2系统角色的功能(1)注册用户使用系统的功能,用户必须先注册,只要注册为网站用户后,获得自己的帐号,设置自己的密码就具有以下功能:登录,登出,参加考试,提交试卷,查询成绩,添加或修改个人资料。(2)管理员管理员可以对试题属性进行设置、对用户资料的查看,删除等,以及对成绩的查询等3.3总体设计思想概述本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了用户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层,如图3-2:图3-2系统架构总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。3.4数据库设计3.4.1E-R图下面是该系统数据库表的E-R图,如图3-4图3-4E-R图3.4.2数据表的设计下面列出了设计过程中所用到的数据库表及其结构:1.Cou_tb表用来保存课程的信息,如表3-1:1.Cou_tb列名类型长度描述IDbigint8课程IDNamevarchar60课程名称JoinTimedatetime8加入时间表3-1Cou_tb2.Man_tb表用来保存管理员信息,如表3-2:2.Man_tb列名类型长度描述IDbigint8管理员IDnamevarchar30管理员名字PWDvarchar30管理员密码表3-2Man_tb3.Title_tb表用来保存考试题目,如表3-3:3.Title_tb列名类型长度描述idbigint8试题IDsubjectvarchar50科目名typechar8试题类型joinTimedatetime8加入时间lessonIdint4课程IdtaoTiIdbigint8套题idoptionAvarchar50选项AoptionBvarchar50选项BoptionCvarchar50选项CoptionDvarchar50选项Danswervarchar10答案notevarchar50备注表3-3Title_tb4.Stu_tb表用来保存用户个人资料,如表3-5:4.Stu_tb列名类型长度描述IDvarchar16学生IDnamevarchar20学生姓名pwdvarchar20登陆密码classvarchar50班级表3-4Stu_tb5.Class_tb表用来保存学生考试成绩,如表3-5:Class_tb列名类型长度描述Class_idint4班级编号Class-namevarchar16班级名表3-5Class_tb3.5系统的类设计3.5.1DAO类设计图3-4dao类设计如图3-4,通过这个工厂获取对应的DAO,然后使用DAO进行数据库操作。3.5.2connDB类设计(部分)图3-5connDB类设计这些实体类将通过servlet映射到数据库中3.5.3过滤器类设计图3-6过滤器类设计1如图3-6,这是编码过滤器类,通过他可保证页面不出现乱码问题。图3-7过滤器类设计2如图3-7,这是登陆安全过滤器类,通过它来达到控制访问权限的功能。3.5.4监听器类设计如图3-8,“CartSessionListener”启动时把考试信息初始化到内存中,提高系统性能。“ProductContextListener”启动时把商品信息初始化到内存中,提高系统性能。图3-8监听器类设计3.6系统的用例图3.6.1总体用例分析图3-9总体用例图如图3-9,用户管理、考试管理、成绩管理、题目管理四个模块构成了本网上考试系统。使用者是指系统用户,包括管理者和考试者用户两种,考试者只可以选择课程,参加考试,查看成绩,修改个人资料等,管理者通过用后台管理就可以对试题库,用户,成绩进行管理。3.6.2用户管理用例分析图3-10用户管理用例图如图3-10,用户管理模块主要包括:用户注册、修改资料、选择课程、在线考试、成绩查询五个功能组成。3.6.3考试管理用例分析图3-11考试管理用例图如图3-11,考试管理模块主要包括:阅读考试规则、选择课程、准备考试、开始考试、自动阅卷、查看成绩六个功能组成。3.6.4考试题目管理用例分析图3-10考试题目管理用例图如图3-12,考题管理模块主要包括:增加题目、删除题目、题目分类、套题管理、答案设置等五个模块组成。3.6.5成绩管理用例分析图3-11绩查询用例图如图3-13,成绩查询模块主要包括:前台考试者的成绩查询,后台管理者的成绩查看。小结本章首先分析系统的功能需求,通过对系统功能模块的划分以及角色的划分,明确了系统需求,为总体设计提供依据。接下来阐述了系统的总体设计思想,说明了本系统是基于B/S架构下的多层结构应用系统。最后通过对数据库、过滤器、监听器、和实体类的设计分析,以及各个模块用例图的描述,形成了开发的整体思路,为下一步编程实现各个具体功能铺平了道路。4.1数据库与connDB类映射的实现前面第二章曾介绍过connDB类采用servlet的形式调用DAO来对数据库实行更新,我们可以配置好Object和数据库中表的映射关系,,这样connDB类在启动时就可以加载数据库调用的类,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object实行自动的维护。4.2主要模块的设计说明与界面4.2.1用户管理模块用户管理模块主要包括用户登录,退出2个部分.(1)用户登陆当用户第一次登录时首先要注册,成为注册用户后,才可以进行其他操作.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如图4-1所示。图4-1户登录界面校验用户登陆信息是是否正确的javaScript部分代码如下:MyJSP'index.jsp'startingpage此页面上的内容需要较新版本的AdobeFlashPlayer。欢迎来到湖北师范学院----在线考试系统对不起,密码与用户名不合,请重新输入!对不起,你还没有登录,无法访问该页面!用户登录用户名称:用户口令:管理员教师学生4.2.2考试管理模块考试管理模块主要功能有如下几个部分:(1)选择课程模块当用户在主页登录后,点击在线考试,系统会自动跳转到Student_Online_Exam.jsp页面来阅读考试规则,点击同意,便可以选择课程。(2)准备考试用户选择了课程之后,便可以开始准备考试,此时,Actionform类会自动在数据库中创建一个Session对象。用来保存此次考试的相关信息。同时会输出课程ID和课程名称,确认该考试。执行流程如下(1)从用户请求对象中获取课程的ID(2)调用业务层的方法根据课程ID去数据查询课程的信息,返回Lesson对象(3)从课程对象中获取课程名,课程ID,来构建一个课程的对象(4)从Session会话中获取用户ID(5)调用业务层的方法来根据用户ID和课程对象来对数据库执行添加操作(6)将些该课程的试题对象放入到考试页面中(3)自动阅卷和显示成绩在选择了开始考试之后,系统会随机在套题表中抽取题目,题目分为单选和多选题两类。在用户答题完成并提交之后,系统会自动统计单选题的得分和多选题的得分,之后进行加运算。查看成绩页面显示最终的得分。功能的执行步骤:(1)将ActionForm转换为ItemForm对象(2)从ItemForm对象中获取课程ID(3)从Session会话中获取考试对象(4)根据课程ID去调用业务层的方法去修改题目得分项(5)修改合计分数(6)将些对象项放入到考试结果表单中4.3系统的测试测试是软件开发必不可少的环节,每个开发者都应该养成良好的测试习惯,一个系统的完善就是通过不断地测试与维护来完成的。测试的意义有以下几点:(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。测试一般有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品的内部动作是否按照说明书的规定正常运行。前一个方法称为黑盒测试,后一个称为白盒测试。对于本系统,我采取第一个方法,即黑盒测试。做完一个模块,就进行测试,看所做的模块能不能实现所需要的功能。经过了先期的模块测试和后期的综合测试,本系统实现了规格说明书的所有功能,达到了预期的要求。小结本章详细介绍了系统主要功能模块的具体实现,包括用户管理模块、考试模块和题目管理模块,分析他们的设计思路,执行步骤,并给出了每个功能的主要实现代码,还有为每个功能的最终执行结果配上截图,让我们看到更直观的效果。最后对完成的系统进行了测试,介绍了两种主流的测试方法,给出了测试结果,达到了预期的要求。5.1工作总结开发Web站点,是一项复杂、繁重的工作,需要多方面的知识。此次通过设计网上考试系统,使我接触到许多基于java语言的WEB网络开发方面的知识,包括HTML语言,CSS级联样式表,用户端开发语言JavaScript,MVC分层体系结构,支持MVC架构的struts框架,开源服务器Tomcat以及,mysql数据库,服务器端开发语言JSP等,这些语言(或技术)扩展了我的知识面,也使我在制作的过程中对它们的特点,应用方向等有了基本的了解,并在实际的应用中大致明白如何将它们融合运用,以开发出界面美观,功能强大的Web站点来。通过本次亲自动手设计系统,我更加深刻的了解系统开发的全过程,从中我熟练掌握了B/S结构Web应用软件设计的思想及其开发的全过程。首先要进行系统的需求分析,分析系统要达到什么功能,系统要划分为几个模块来设计,系统的具体功能应当如何去实现;分析完之后,考虑其涉及到的计算机专业知识,把问题细化,把大的问题划分为小的问题,然后逐个进行解决。毕业设计开始阶段,由于我们没有软件架构的设计经验,所以在项目的业务流程和软件的开发规范上犯了很的错误,所以在后期的组装过程变的非常的困难。设计收获:1.掌握了网站开发的基本流程,设计整个网站的功能模块图;2.掌握了如何搭建和配置一个Tomcat服务器;3.掌握了使用JSP编程,实现对信息的显示、修改、删除和添加等;遇到的问题:1.JSP中文乱码问题的解决对于JSP中文乱码问题的处理,常用的方法有两种:一种方法是在JSP页面上设置页面的“contentType”属性。这种方法就是在页面开始时,设置页面的“contentType”属性,例如:另一种方法是输出中文信息时使用“ISO8859-1”编码。这种方法是在输出中文信息之前,对中文信息进行一次“ISO8859-1”编码。2.Java.lang.NullPointerException异常一般是对一个为NULL值的变量进行操作引起的。为了避免这种异常,最好在对变量操作之前检查看它是否为NULL值。5.2后续工作展望由于个人能力有限以及实践经验欠缺,系统基本满足在线考试的功能需求,本系统不可避免有不足之处,如一些系统功能过于简单,所以系统的功能还算不上很完善。希望老师和同学能给予建议和指导。

详情

猜你喜欢

Copyright © 2020