




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于java实现的计算机考试系统毕业论文目 录第1章 绪论31.1项目背景31.2计算机考试系统发展及现状31.3国内外发展现状41.4研究开发的目标和基本内容41.4.1 系统开发的主要任务和目标41.4.2 系统开发的基本内容51.5 技术研究背景5第2章 系统技术介绍及应用72.1 JSP技术概述及工作原理72.1.1 JSP技术概要72.1.2 JSP的工作原理82.1.3 JSP与ASP的比较82.2 JDBC介绍102.3 MVC模式介绍122.4 Struts技术概述及工作原理132.4.1 Struts技术概述132.4.2 Struts的工作原理142.5 Hibernate技术概述及工作原理152.5.1 Hibernate技术概述152.5.2 Hibernate工作原理162.6 Tomcat应用服务器介绍172.7 MySQL数据库介绍192.7.1 数据库的历史和发展192.7.2 MySQL介绍192.7.3 MySQL的主要特性20第3章 系统需求分析223.1系统功能概述223.2权限与控制223.3系统业务流程分析233.3.1业务术语233.3.2业务流程233.4系统模块简介273.4.1登录模块273.4.2系统管理模块273.4.3科目管理模块283.4.4题库管理模块293.4.5试卷管理模块293.4.6帐户管理模块293.4.7考试管理模块293.4.8信息查询模块303.5系统开发环境30第4章 系统设计314.1系统整体架构设计314.2系统管理设计314.3题库管理设计374.4科目管理设计384.5试卷管理设计394.6帐户管理设计394.7考试管理设计404.8信息查询设计414.9数据库设计42第5章 系统实现455.1 系统Model层实现455.1.1类AdminBean:455.1.2类SchoolBean:455.1.3类CollegeBean:465.1.4类ClassBean:465.1.5类TeacherBean:475.1.6类StudentBean:475.1.7类ExamBean:485.1.8类PaperBean:495.1.9类SubjectBean:505.1.10类TiankongBean:505.1.11类XuanzeBean:515.2系统数据访问对象DAO层实现525.2.1类AdminBeanDAO:525.2.2类SchoolBeanDAO:525.2.3类CollegeBeanDAO:535.2.4类ClassBeanDAO:535.2.5类TeacherBeanDAO:535.2.6类StudentBeanDAO:535.2.7类ExamBeanDAO:545.2.8类PaperBeanDAO:545.2.9类SubjectBeanDAO:545.2.10类TiankongBeanDAO:555.2.11类XuanzeBeanDAO:555.3系统中的ACTION类555.3.1类AccountAction:555.3.2类AccountManageAction:565.3.3类SchoolAction:565.3.4类CollegeAction:575.3.5类ClassAction:575.3.6类TeacherAction:585.3.7类StudentAction:595.3.8类ExamAction:595.3.9类PaperAction:605.3.10类SubjectAction:615.3.11类QuestionAction:625.4系统中的视图层62第6章 总结71第1章 绪论1.1项目背景无纸化考试系统是现代教育的重要标志,这样的考试让考试的结果更加的合理,更加的公正、公平。也让不必要的人力从中解脱出来,去完成其它的一些事情。学生通过计算机网络登入系统,实时提交解答。系统能保存结果,供教师披阅,并能自动根据条件对客观题进行判分,还能对分数进行统计、管理,协助教师找出教学中存在的问题,满足任何授权的考生随时随地考试并迅速获得成绩的需求,同时也大大减轻了教师出题、监考和判卷等繁重的工作量。鉴于现在大多数学校的计算机考试系统基本上都是C/S结构,对时间、地点以及考试规模都有很大的限制,而现在的大学里基本上的学生都人手一台电脑。如果将考试系统做成B/S结构的话就可以将没有这些方面的限制,可以进行大规模同时的考试,而且计算机可以方便的进行考试,不需要进行任何的客户端安装,只需要有一个浏览器。1.2计算机考试系统发展及现状20世纪50年代,电子计算机和光电阅读机在大规模考试中的广泛运用促进了标准化考试的推广和普及。然而应当指出,这时的考试方法仍是传统的纸笔考试形式。到了2O世纪末,随着测试理论的完善、计算机的普及、多媒体技术的运用和经济的增长,测试界已清楚地看到单一的纸笔考试弊大于利。那么纸笔考试所暴露出来的问题该如何解决?标准化考试还要不要推行?于是专家们开始在测试的方法和手段上下工夫,国外的TOEFL如此,国内的CET亦然。这一变化竞来得如此之快,可以说是在向一个时代告别,即:计算机化考试时代的到来1。1.3国内外发展现状现在国内外都有许多的计算机考试系统,而CAT(computerized Adaptive Testing,计算机自适应考试系统)是近年来测验研究中引人注目并取得了重大发展的领域。计算机化白适应测验(简称CAT)是在项目反应理论的基础上,建立题库,然后计算机根据被试的能力水平自动地选择测试题目,并对被试的所达到的能力的水平做出判断的一种全新的测验形式 2 。所谓自适应测验它的基本思想是“因人施测”,使不同水平被试者都能接受一组跟自己特质水平相适应的试题。所谓“自适应”就是测验本身要自动地适应被试的具体情况,在被试作答过程中及时根据作答资料估出被试的可能水平,并针对这一水平迅速决策,从大型题库中调取难度恰当、性能优良的题目继续施测。直到施测的题目足够多,测验信息量累计和达到指定值为止。如今在美国,CAT已经在教育测验、职业测量、人事测评等领域中大显身手,如美国研究生入学考试(Graduate Record Examination)、工商管理类研究生入学考试(Graduate for Management and Administration Test)以及全美护士国家委员会资格考试(Nurse National Committee License Test)等都已采取了CAT的方式。在信息产业中,美国Novell公司于1991年成功的应用了CAT进行认证考试,使参加Novell自适应考试的人数超过1,000,000人次。在我国,已经出现一些应用型的研究,自行编制了一些CAT测验,并取得了实际的运用效果,上海电大在上海市计算机应用能力的考试项目“VB6.0程序设计”中已采用了CAT的考试设计方法。江西师大小学数学CAT研究、华南理工大的“数据结构”自适应测试系统的研究也取得了一定的成果。自上世纪九十年代初期开始,全国大学英语四、六级考试委员会一直致力于项目反应理论和“计算机自适应测验”的研究和开发。1.4研究开发的目标和基本内容1.4.1 系统开发的主要任务和目标1、实现保存试题的数据库系统2、实现在线考试系统的服务器端及客户端3、了解试卷批改规则,实现客观题的自动判分4、实现系统成绩查询功能1.4.2 系统开发的基本内容1、提供数据库访问权限给不同人员进行试题库添加、管理,试卷批改,答案输入;2、从试题库中生成难度的合理试卷;3、通过网络实现与考生的互动,随时增减试题难度,以便最大限度地考察学生水平;4、结合试题难度系数协助教师判分。1.5 技术研究背景J2EE是适用于创建服务器应用程序和服务的Java 2平台企业版Java2 Platform Enterprise Edition,J2EE),该技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性,方便存取数据库的JDBC API、CORBA技术以及能够在Intemet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持3。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层面分布在不同的机器上,解决了两层模式(clientserver)的弊端在传统模式中,客户端担当了过多的角色,可能第一次部署时比较容易,但难于升级,可伸展性也不理想,经常是基于某种专有的协议(通常是某种数据库协议),重用业务逻辑和界面逻辑非常困难现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层,每个多层化应用能够为不同的服务提供一个独立的层面4。本系统采用J2EE进行开发,J2EE特别适用于WEB开发,现在最流行的WEB开发模式是SSH(Struts+Spring+Hibernate)模式,Struts作为视图层,Spring作为控制层,Hibernate为模型层。这样写的程序有很清晰的分层,耦合度低,有利于开发和维护。这些框架可以为开发者提供一个简单易用的模型,采用一个经过良好设计的开源框架有很多好处:1、 开发者只需要写一些必须的代码。他们不需要直接接触底层的API。2、 经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚性。清晰的结构使得其他人很容易加入项目。3、 一个容易适用的框架可以通过一些例子和文档为用户提供最佳实践。4、 使用成功的框架的代码比自己的代码容易测试。框架应该在需要的时候才使用,不要为了使用框架而使用框架。所为我的这个系统使用的是Struts+Hibernate,这两个都是比较成熟的开源框架,通过Hibernate做OR映射和对数据库的访问。Struts做视图层,Struts的ActionServlet做控制层。第2章 系统技术介绍及应用2.1 JSP技术概述及工作原理2.1.1 JSP技术概要在开始介绍JSP之前,我先要介绍两个名词:组件和容器还有servlet。组件:组件是你的应用程序的的组体构件。它包括servlets、JavaBeans、JSP、HTML页面、EJBs以及其它类似的东西。容器:容器是那些执行组件的应用程序。如果你的应用程序由JSP和servlet组件构成的,那么你就需要一个具有JSP支持的servlet容器(正式名称是servlet引擎);如果你的应用程序是有EJBs构成的,那就需要一个EJB容器。servlet:servlet是一种独立于平台和协议的服务器端的Java应用程序,可以动态的生成WEB页面。servlet由WEB服务器进行加载,该WEB服务器必须包含支持servlet的java虚拟机。JSP:JSP(java server pages)是由SUN公司在servlet基础上开发出来的一种动态网页制作技术,其可使您可以将网页中的动态部分和静态的HTML相分离。您可以使用平常得心应手的工具并按照平常的方式来书写HTML语句。然后,将动态部分用特殊的标记嵌入即可,这些标记常常以“%”开始并以“%”结束。通常,您要将文件以“.jsp”为扩展名,并将它 放置到任何您可以放置普通WEB页面的路径下。尽管JSP文件看起来更象是HTML文件而不是Servlet文件,但,事实上,它恰恰将转换为 Servlet文件,其中的静态HTML仅仅用来输出Servlet服务方法返回的信息。如果JSP pages 已经被转换为Servlet且Servlet 被编译进而被装载(在第一次被Request时),当您再次Request 此JSP页面时,将察觉不到一瞬的延迟。JSP有4个关键成分:指令(directive)、动作(action)、scriptlet和 标记库(tag library)。指令是指那些发送给JSP容器的消息,它使程序能够指定页面的设置、包含其它资源中的内容和指定JSP中使用的定制标记库。动作将功能封装在预定义的 标记中,然后程序员可以将它们(预定义标记)嵌入JSP中。通常根据发送给服务器的 特定客户请求中的信息来执行动作。它们还可以创建在JSP scriptlet中使用Java对象。Scriptlet,即脚本元素(scripting element),使程序员能够插入与JSP中的组件(和其它Web应用程序组件)进行交互的Java代码,以处理请求。标记库是标记扩展机制的一部分,它使程序员能够创建定制的标记,这种标记使得程序员能够操作JSP内容。52.1.2 JSP的工作原理当用户第一次请求或者刷新一个JSP页面时,JSP容器首先是要找到这个JSP页面的源代码文件,然后开始处理,把这个JSP源文件翻译成java代码文件。当用户请求这个文件时,需要JSP容器来处理这个文件。62.1.3 JSP与ASP的比较一般说来,Sun 公司的JavaServer Pages(JSP)和Microsoft的Active Server Pages(ASP)在技术方面有许多相似之处。两者都为动态网页的技术,并且双方都能够替代CGI 技术,使网站的开发时程能够大大缩短,在性能上也有较高的表现,更重要的一点是,两者都能够为程序员提供组件设计的功能,通过组件设计,将网页中逻辑处理部分交由组件负责处理(ASP 使用COM 组件、JSP则有JavaBean 组件),而和网页上的排版、美工分离。尽管Java Server Pages 技术和Active Server Pages(ASP)在许多方面都很相似,但仍然存在很多不同之处,其中本质上的区别在于:两者是来源于不同的技术规范组织。以下就来比较两大技术有哪些不同点,而又为各自带来哪些优势。平台和服务器的弹性ASP (Active Server Pages)技术主要在微软(Microsoft)公司的Windows 平台上运行,其中包括Windows 2000、Windows XP 和Windows 2003,并且搭配其WEB 服务器IIS (Internet Information Services)。但是,在其他的平台运行时,不是性能低落,就是根本不支持,因此,当在开发网站系统时,选择NT+IIS+ASP的体系结构时,未来当系统无法负荷时,也只能继续选择Windows 平台的服务器,无法改写在性能表现相当优异的UNIX 平台上。JSP (Java Server Pages)技术主要运行在操作系统上的一个Java Virtual Machine (JVM)虚拟机器上,因此,它能够跨越所有的平台,例如:NT、Windows 2000、Solaris、Linux、OS/390、AIX、HP-UX ,等等,除了能在各式各样的操作系统上执行,并且能搭配现有的WEB服务器:Apache、IIS、Netscape Enterprise Server ,等等,将静态的HTML网页交由执行速度较快的Web Server 处理,而动态产生网页的部分,就交由JSP Container 来执行。由上述可知,JSP (JavaServer Pages)技术在跨平台的表现比ASP来得更有弹性。WEB 网页程序员未来在开发电子商务平台时,就不需要再考虑客户厂商的操作系统平台,可更专心于系统功能的开发。相应地,厂商在使用Java Server Pages 技术开发的系统平台时,不再需要担心未来在扩充软、硬件时,是否产生不兼容的问题。光这一点,就能为企业省下一大笔的费用,这是JSP 的主要优点。开放的开发环境自从1995 年,Sun 公司已经开放技术与国际Java 组织合作开发和修改Java 技术与规范。JSP应用程序接口(API)毫无疑问已经取得成功,并随着Java 组织不断扩大其应用的范围,目前全力发展Java 技术的厂商不胜枚举,例如:最近IBM 公司强力推广的WebSphere 家族,正是完全支持J2EE 标准而开发。数据库厂商Oracle 也发展自己的Application Server 来和自己公司本身数据库产品Oracle 9i 做一紧密的结合。那也更不用提Amazon 系统的供货商BEA 公司,它的产品WebLogic也是完全支持Java Server Pages技术和J2EE 规范的。相反,ASP 技术仅依靠微软本身的推动,其发展建立在独占、封闭的基础之上,并且微软本身的技术又只允许在微软相关平台的服务器上执行,因此,在标准方面显得有点力不从心。执行性能表现ASP 和JSP 在执行性能的表现上,有一段显著的差距,JSP 除了在一开始加载的时间会比较久外,之后的表现就远远比ASP 的表现来得好。原因在于:JSP 在一开始接受到请求时,会产生一份Servlet 实体( instance ),它会先被暂存在内存中,我们称之为持续( Persistence ),当再有相同请求时,这实体会产生一个线程(thread)来服务它。如果过了一段时间都不再用到此实体时, Container 会自动将其释放,至于时间的长短,通常都是可以在Container 上自行设定的。而ASP在每次接收到请求时,都必须要重新编译,因此,JSP 的执行比每次都要编译执行的ASP要快,尤其是程序中存在循环操作时,JSP 的速度要快上1 到2倍。不过,ASP在这部分的缺陷,将随ASP+的出现有所改观,在新版的ASP+技术中,性能表现上有很大的突破。72.2 JDBC介绍JDBC(Java DataBase Connectivity),是用于执行SQL语句的Java应用程序接口,是一套API集合,在这个集合中设置了许多允许Java程序连接数据库的框架。JDBC由一组用Java语言写成的类和接口组成,是一种连接不同数据库的规范,其宗旨是让各数据库开发商为Java程序员提供标准的数据库访问类和接口。JDBC与Java结合,使用户可以很容易的把SQL语句传送到任何关系型数据库中,程序员用它编写的数据库应用程序,可以在各种数据库系统上运行。8这是真正的可移植性的软件所必须具备的一个特点。JDBC已经被业界普遍采用,而且是在Java在服务器端成功的主要贡献因素。JDBC驱动程序是依靠独立的软件公司开发的。JDBC驱动程序适合特定的数据库系统和数据访问模型,主要的那些数据库系统都有对应的的驱动程序,例如Microsoft、oracle、Informix、Sybase、Postgress、MySQL等等。JDBC与java应用程序和数据库的关系如图2.2所示.图2.2 JDBC与java应用程序和数据库的关系JDBC中的主要对象包括:class:- DriverManager - 驱动管理,获得连接interface:-Connection 连接对象-Statement 执行SQL语句-PrepareStatement 执行SQL语句,预编译,可带参数-CallableStatement 执行存储过程ResultSet 查询结果记录集ResultSetMetaData 记录集的元信息2.3 MVC模式介绍MVC是一种体系结构模式,代表ModelViewController,是应用于交互式系统的一种体系结构模式。MVC产生于20世纪70年代PaloAlto实验室的Smalltalk编程环境。MVC模式指导模块的职责分配和模块之间的通信协议。职责分配是面向对象分析和设计中最重要的工作,协议设计则是相当困难的工作。MVC为这两项工作提供了指导,所以意义重大。Model是应用程序对象,也就是包含应用程序数据和业务逻辑的对象。Model对外表现为一个对象,实际上可以也应该是一组子对象的集合。传统意义上的View是屏幕对象,负责向用户显示交互界面。这个意义可以进行扩展,将View视为向外界展现应用程序状态的接口和界面。所有的用户输入都由Controller负责处理。在交互式系统中,Controller是导致Model发生变化的唯一原因,是导致View发生变化的两个原因之一,因此是控制中心。Controller将用户事件翻译成为请求,而不是命令。如果机械地遵循MVC的规则,Controller的逻辑将十分复杂。Controller通常需要查询View和Model才知道如何处理用户输入。不要把所有逻辑写在Controller里。View和Model都是有智能的对象。可以通知它们,由它们自己决定应对的方式。一个应用程序或者组件只能有一个Model,但是这个Model可以对应多个View。View向Model注册,要求在Model的数据发生变化时获得通知消息。View得到通知消息之后,获取Model的相应数据,更新自己的显示。View不向Model发送消息。一个View对应一个Controller。View负责创建和初始化Controller,这也是View和Controller关系密切的原因之一。Controller接收用户输入,如果有与应用程序数据无关,而只涉及显示变化的用户输入,Controller直接通知View。Controller和View关系密切的另一个原因是现代应用程序界面复杂,灵活多变。因此Controller需要大量了解View的情况,大量查询View的信息,距离太远不利于效率和灵活性,协议也很难设计,所以经常捆绑在一起。例如,目前基于控件的图形界面,很多控件实际上是一个封装好的MVC实体,通过属性、事件和方法与外界协同工作,强行拆分反而适得其反。因为一个Model对应多个View,一个View对应一个Controller,所以一个Model对应多个Controllers。Controller接收外部输入,是导致Model发生变化的唯一原因。同时,Model的变化可能导致Controller行为的变化。9MVC模式如图2.3所示。图2.3 MVC模式图2.4 Struts技术概述及工作原理2.4.1 Struts技术概述Struts最初是由Craig R.McClanahan 创建的,然后在2000年用于Apache Software Foundation(ASF)的Jakarta项目。2001年6月,Struts1.0发布。那以后,很多人在源代码和文档方面对该项目做出过贡献,Struts得到迅速的发展。在Craig R.McClanahan将Struts用于Apache Jakarta项目的时候,Struts就成为了开放源代码软件,任何人都可以通过/struts 下载到源代码。Struts是构建基于java的Web应用程序的首选框架。通过采用模型-视图-控制器(MVC)设计模式,使用Struts可以开发使用Java Servlets和JavaServer Pages的高性能、面向事务的Web应用程序,并可以解决诸多相关问题。首先,需要认识到Struts带来的不仅仅是编程的便利性,Struts还从根本上为Web编程人员构思和 构建Web应用程序提供了一种新的方式。在MVC体系结构中,中心Servlet(被称为控制器)接收所有应用程序的请求。然后控制器将对请求进行处理,同时准备视图(通常是JSP)所需要的任何数据,并将此数据发给JSP。接着JSP使用由控制器准备的数据生成浏览器响应。本体系结构中,事务逻辑和显示逻辑彼此相互独立。10在struts框架中,模型分为两个部分:系统的内部状态 可以改变状态的操作(事务逻辑) 内部状态通常由一组ActinForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。112.4.2 Struts的工作原理Struts应用程序的执行流如图2.4.2所示:图2.4.2 Struts应用程序的执行流1.浏览器向Struts应用程序发出请求,ActionServlet(控制器)对该请求进行处理。2.ActionServlet(控制器)用HTML表单填充ActionForm(视图)对象,并调用其validate()方法。3.ActionServlet(控制器)执行Action对象(控制器)。4.Action(控制器)与模型组件一起为视图准备数据。5.Action(控制器)将控制权交给JSP(视图)。6.JSP(视图)使用模型数据生成对浏览器的响应。2.5 Hibernate技术概述及工作原理2.5.1 Hibernate技术概述现今的应用系统设计中,MVC作为主流系统架构模式之一,贯穿了 整个设计流程。MVC中的 M,也就是所谓的Model,则可以说是与业务逻辑和数据逻辑关联最为紧密的部分。而持久层作为Model层中的主要组成,其设计的优劣势必对系统的整体表现产生至关重要的影响。说到持久层设计就必须说到持久层框架,现在有很多优秀的实现版本,其中ORM持久层框架,则是未来的主流。所谓ORMObject/Relational Mapper,从字面上理解是:对象关系型数据映射组件。在java发展的初级阶段,直接调用JDBC几乎是数据库访问的唯一手段。随着近年来设计思想和Java技术本身的演化,出现了许多JDBC的封装技术,这些技术为我们的数据库访问层实现提供了更多的选择,目前主流的JDBC封装框架包括:Hibernate、Apache OJB、iBatis,JDO以及J2EE框架中的CMP等。这些框架以优良的设计大大提高了数据库访问层的开发效率,并且通过对数据访问中各种资源和数据的缓存调度,实现了更佳的性能。Hibernate提供了强大、高性能的对象到关系型数据库的持久化服务。利用Hibernate,开发人员可以按照Java的基础语义(包括关联、继承、多态、组合以及Java的集合架构)进行持久化开发。Hibernate提供的HQL(Hibernate Query Language)是面向对象的查询语言,它在对象型数据和关系型数据库之间构建了一条快速、高效、便捷的 沟通渠道。2001年末,Hibernate第一个正式版本对外发布,之后两年作者Gavin King以灵活快速的迭代发布,使得Hibernate快速发展起来。2003年6月8日,Hibernate2发布,提供了对大多数主流数据库的良好支持,提供了完善的 数据关联、事务处理、缓存管理、延迟加载机制实现,同时堪称典范的开发文档(Hibernate Reference)也为广大用户提供了一份清晰易懂的参考手册。2003年末,Hibernate获得了Jolt2004大奖并且Hibernate被业内知名的开源组织JBoss收纳,成为从属于JBoss组织的子项目之一。这两个时间确立了Hibernate在Java ORM架构中的主导地位。122.5.2 Hibernate工作原理Hibernate的基础代码包括POJO和Hibernate映射文件。POJO在Hibernate语义中理解为数据库表所对应的Domain Object。这里的POJO是所谓的“Plain Ordinary Java Object”,指无格式普通Java对象,可以简单地理解为一个不包含逻辑代码的值对象,这样的类只包含字段的get和set方法。Hibernate是一种“对象关系型数据映射组件”,它使用映射文件将对象和关系型数据相关联。在Hibernate中,映射文件通常以“.hbm.xml”作为后缀。Hibernate配置文件主要用于配置数据库连接和运行时所需要的各种属性。主要配置内容为:SessionFactory中的数据库URL配置、数据库JDBC驱动配置、数据库用户名配置、数据库用户密码配置、数据库适配器配置,映射文件配置等等。由于Hibernate对JDBC进行的很好的封装,所以我们并不需要直接通过JDBC操作数据库表,而是通过Hibernate间接使用。首先通过Configuration config = new Configuration().configure();得到Configuration类,Configuration类负责管理Hibernate的 配置信息。再通过SessionFactory sessionFactory = config.buildSessionFactory();得到sessionFactory,SessionFactory中保存了对应当前数据库配置的所有映射关系,同时负责维护当前二级数据缓存和Statement Pool。Session是Hibernate持久化操作的基础。这里的Session与传统意义上的Web层HttpSession没有什么关系。Hibernate Session 之与Hibernate,相当于JDBC Connection 之与JDBC。Session通过 Session session = sessionFactory.openSession();得到,Session作为贯穿Hibernate的持久化管理器核心,提供了众多持久化方法,如save、update、delete,find等。通过这些方法我们就可以操作数据库了。Session是一个轻量级对象。通常每一个Session实例和一个数据库事务绑定,也就是说,每执行一个数据库事务,都应该先创建一个新的Session实例。如果事务执行中出现异常,应该撤销事务。不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例占用的资源。132.6 Tomcat应用服务器介绍学习Servlet技术,首先需要有一个Servlet运行环境,也就是需要有一个Servlet容器,这里介绍Tomcat。Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持, 最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。14图2.6是Tomcat服务器接受客户请求并做出响应的过程。图2.6 Tomcat服务器接受客户请求并做出响应的过程1客户端(通常都是浏览器)访问Web服务器,发送HTPP请求。2 Web服务器接收到请求后,传递给Servlet容器。3 Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。4 Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。5 Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。152.7 MySQL数据库介绍2.7.1 数据库的历史和发展在当前信息时代,作为信息管理的主要工具数据库技术得到了广泛的应用。数据库一词起源于20世纪50年代,当时美国的研究人员为了战争的需要,把各种情报集中在一起存储在计算机中,称为 Information Base 或 DataBase。半个世纪以来,数据库技术已经成为计算机领域中最重要的技术之一,它是软件学科中一个独立的分支。数据库技术的出现使得计算机应用渗透到工业、农业、商业、行政、科研、工程、国防、军事、文化教育等各个部门,渗透到社会的每个角落,并且正改变着人们的工作和生活方式。管理信息系统、办公自动化系统、决策支持系统等都是使用的数据库技术的计算机应用系统。数据库技术已经成为了信息高速公路的核心组件技术16。当前主要的数据库产品有IBM的DB2当前版本为9,Microsoft 的 SQL Server当前版本为2005,Oracle数据库当前版本为11g,和开源社区的MySQL当前版本为5.1。2.7.2 MySQL介绍MySQL:MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。MySQL网站()提供了关于MySQL和MySQL AB的最新的消息。MySQL是一个关系数据库管理系统关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。“MySQL”中的SQL代表“Structured Query Language”(结构化查询语言)。SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。SQL标准发展自1986年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是该标准的当前版本。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。17MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。2.7.3 MySQL的主要特性使用核心线程的完全多线程。这意味着它能很容易地利用多CPU。C、C+、Eiffel、Java、Perl、PHP、Python API可运行在不同的平台上。多种列类型:1、2、3、4、和8字节长度的有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET和ENUM类型。利用一个优化的一遍扫描多重联结(one-sweep multi-join)非常快速地进行联结(join)。通过一个高度优化的类库实现SQL函数库并且像他们能达到的一样快速,通常在查询初始化后不应该有任何内存分配。一个非常快速的基于线程的内存分配系统。函数名不会与表或列名冲突。例如ABS是一个有效的列名字。对函数调用的唯一限制是函数名与随后的“(”不能有空格支持ANSI SQL的LEFT OUTER JOIN和ODBC语法。所有MySQL程序可以用选项-help或-?获得联机帮助。服务器能为客户提供多种语言的出错消息第3章 系统需求分析3.1系统功能概述随着网络的发展,越来越多的应用被移植到网络上,有人预言网络操作系统将会替代现在的桌面操作系统。采用B/S结构的WEB应用程序具有瘦客户端的特点,它不需要像C/S结构的桌面应用程序那样进行繁琐和费时的安装,你只需要一个浏览器便可以使用WEB应用程序。但是WEB应用程序也有一定的局限性,因为它将大量的操作由服务器完成,这将大大加重服务器的负担,因此大型的WEB应用程序需要强大服务器支持。本系统采用B/S结构设计开发,旨在让用户通过网络浏览器实现对系统的访问。可以大大减少各个用户在时间和空间上的限制。不同级别的用户可以对系统进行不同的管理和操作。这个系统主要目的是可以让考试变得更方便,让改卷变得更轻松,让管理变得更容易。有了这个系统,学生可以拿到一台计算机就可以考试,不必担心这台机器上是否装有考试系统。3.2权限与控制用户按照不同的角色进行分类,分为管理员(admin)、学生(student)和教师(teacher)三类,每个角色对应不同的权限。admin帐号为系统产生是存在。student 和 teacher 帐号不能注册,必须由管理员进行录入,产生相应的帐号和密码在告诉学生和教师,学生和教师可登录系统进行密码的修改。admin主要职责是维护、管理和添加各种数据。teacher主要职责是管理题库、试卷库、查看学生的考试信息。student主要职责是考试和查看自己的考试信息。3.3系统业务流程分析3.3.1业务术语名称说明角色系统中包括 管理员(admin) 学生(student) 教师(teacher) 三种角色帐号登录时需要,唯一区别每个用户的。密码登录时必须输入。3.3.2业务流程登录:图 登录流程图管理员登录:图 管理员登录流程图教师登录:图 教师登录流程图学生登录:图 学生登录流程图3.4系统模块简介根据对计算机考试系统的分析和理解,本系统应该包含以下几个功能:3.4.1登录模块登录页面上有一个角色下拉框,两个文本框分别是输入帐号和密码。登录前选择登录的角色,输入帐号和密码,如果相应的数据库表中与输入的帐号密码相同则登录成功,否则页面上显示错误信息。3.4.2系统管理模块系统管理模块是只有管理员可见的模块,它包括5个小模块,分别是:学校数据模块、学院数据模块、班级数据模块、教师数据模块、学生数据模块。(1)学校数据模块学校数据模块首先在页面中列出相关的学校数据,它的功能包括对学校数据的增加、删除和修改,增加操作将跳转到一个增加页面填入相应的字段验证通过后保存到数据库。删除一条记录时则需要考虑这条记录是否被后面的数据所使用,要是被使用则提示无法删除。修改一条记录时跳转到修改页面,对一些可修改的字段进行修改,验证通过后保存。(2)学院数据模块学院数据模块首先在页面中列出相关的学院数据,它的功能包括对学院数据的增加、删除和修改,增加操作将跳转到增加页面,页面中有一个所在学校的字段时一个下拉框,内容为学校数据中增加进去的学校,选择一个学校填入其他数据验证通过后保存到数据库。删除一条记录时则需要考虑这条记录是否被后面的数据所使用,要是被使用则提示无法删除。修改一条记录时跳转到修改页面,对一些可修改的字段进行修改,验证通过后保存。(3)班级数据模块班级数据模块首先在页面中列出相关的班级数据,它的功能包括对班级数据的增加、删除和修改,增加操作将跳转到增加页面,页面中有两个下拉框一个是所在学校,一个是所在学院,这两个为二级联动的下拉框,选中所在学校后,学院下拉框中显示相应学校的学院,填入其他数据验证通过后保存到数据库。删除一条记录时则需要考虑这条记录是否被后面的数据所使用,要是被使用则提示无法删除。修改一条记录时跳转到修改页面,对一些可修改的字段进行修改,验证通过后保存。(4)教师数据模块教师数据模块首先在页面总列出相关的教师数据,它的功能包括对教师数据的增加、删除和修改,增加操作将跳转到增加页面,页面中有两个下拉框一个是所在学校,一个是所在学院,这两个为二级联动的下拉框,选中所在学校后,学院下拉框中显示相应学校的学院,填入其他数据验证通过后保存到数据库。删除一条记录时则需要考虑这条记录是否被后面的数据所使用,要是被使用则提示无法删除。修改一条记录时跳转到修改页面,对一些可修改的字段进行修改,验证通过后保存。(5)学生数据模块学生数据模块首先在页面中列出相关的学生数据,它的功能包括对学生数据的增加、删除和修改,增加操作将跳转到增加页面,页面中有三个下拉框一个为所在学校,一个为所在学院,一个为所在班级,这三个为三级联动的下拉框,选择相应的学校、学院、班级后,填入其他数据验证通过后保存到数据库。删除一条记录时则需要考虑这条记录是否被后面的数据所使用,要是被使用则提示无法删除。修改一条记录时跳转到修改页面,对一些可修改的字段进行修改,验证
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年镀铜设备行业市场发展分析及投资前景研究报告
- 2025-2030年金融系统安防行业市场发展分析与发展前景及投资战略研究报告
- 2025-2030年野生黄牛肝菌产业发展分析及发展趋势与投资前景预测报告
- 2025-2030年轻钢行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年药用化妆品行业市场深度分析及竞争格局与投资价值研究报告
- 2025-2030年网络证券行业风险投资发展分析及运作模式与投资融资研究报告
- 2025-2030年精炼橄榄油行业市场深度调研及发展前景与投资研究报告
- 2025-2030年空压系统设备行业市场发展分析及发展前景与投资机会研究报告
- 2025-2030年禽饲料行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年白酒包装设计行业竞争格局分析及投资前景与战略规划研究报告
- 维修安全协议书合同
- 2025年江苏省苏州市姑苏区中考数学一模试卷
- 穿越时空的音乐鉴赏之旅智慧树知到期末考试答案章节答案2024年浙江中医药大学
- 《烧(创)伤的急救复苏与麻醉管理》智慧树知到课后章节答案2023年下中国人民解放军总医院第四医学中心
- 铁塔组立施工作业指导书抱杆计算
- 第七课:构图的形式
- 六类网线检测报告(共9页)
- 教师素养试题及答案
- 实验室生物安全程序文件(中心)
- 奔驰潜在供应商评估指南(doc93页)完美版
- 核电工程中设备的采购及质量控制
评论
0/150
提交评论