驾校在线考试系统的设计与实现毕业论文.docx

上传人:b****1 文档编号:963151 上传时间:2022-10-14 格式:DOCX 页数:32 大小:389.51KB
下载 相关 举报
驾校在线考试系统的设计与实现毕业论文.docx_第1页
第1页 / 共32页
驾校在线考试系统的设计与实现毕业论文.docx_第2页
第2页 / 共32页
驾校在线考试系统的设计与实现毕业论文.docx_第3页
第3页 / 共32页
驾校在线考试系统的设计与实现毕业论文.docx_第4页
第4页 / 共32页
驾校在线考试系统的设计与实现毕业论文.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

驾校在线考试系统的设计与实现毕业论文.docx

《驾校在线考试系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《驾校在线考试系统的设计与实现毕业论文.docx(32页珍藏版)》请在冰豆网上搜索。

驾校在线考试系统的设计与实现毕业论文.docx

驾校在线考试系统的设计与实现毕业论文

驾校在线考试系统的设计与实现毕业论文

1引言

1.1选题背景

现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即出卷、考生考试、阅卷、成绩评估和试卷分析。

显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分繁琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。

随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。

人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,从而提高了考试的质量,使考试更趋于公证、客观、激发学生的学习兴趣。

例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。

1.2课题背景及开展研究的意义

为了适应新形势的发展,目前国内有很多公司团体研究开发了基于Web的考试系统。

而我们知道网络应用软件运行的模式主要有二类:

Client/Server模式、Browser/Server模式。

前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展而应运而生的一种技术,在这种模式下,客户端需要一个浏览器,服务器端是WebServer,而WebServer是与数据库和应用服务器的紧密结合,可见,这种模式是瘦客户端,即对客户端的要求不高.如今,很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。

然而,随着技术的发展,更先进的模式纷纷被提出并时兴起来,其中J2EE就是比较成熟的一种。

2相关技术分析

2.1JSP技术介绍

JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。

网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。

JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。

插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。

目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。

JSP页面由HTML代码和嵌入其中的Java代码所组成。

服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。

JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。

2.2三大框架介绍

2.2.1Struts

struts2并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说struts2是struts1和Webwork结合的产物。

struts2的工作原理图如图2.1所示:

图2.1struts2的工作原理图

一个请求在Struts2框架中的处理分为以下几个步骤:

a.客户端发出一个指向servlet容器的请求(tomcat);

b.这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。

c.过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2的底层框架结构。

在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。

如:

ConfigurationManager、ActionMapper和ObjectFactory。

ConfigurationManager存有配置文件的一些基本信息,ActionMapper存有action的配置信息。

在请求过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。

过滤器会通过询问ActionMapper类来查找请求中需要用到的Action。

d.如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。

ActionProxy为Action的代理对象。

ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

e.ActionProxy创建一个ActionInvocation的实例。

ActionInvocation在ActionProxy层之下,它表示了Action的执行状态,或者说它控制的Action的执行步骤。

它持有Action实例和所有的Interceptor。

 

f.ActionInvocation实例使用命名模式来调用,1.ActionInvocation初始化时,根据配置,加载Action相关的所有Interceptor。

2.通过ActionInvocation.invoke方法调用Action实现时,执行Interceptor。

在调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。

g.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

在表示的过程中可以使用Struts2框架中继承的标签。

2.2.2Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate作为数据持久化的中间件,足以让数据库在业务逻辑层开发中去冬眠。

它通过可扩展标记语言(XML)实现了类和数据表之间的映射,使程序员在业务逻辑的开发中面向数据库而改为面向对象开发。

使整个项目开发分工更加明确,提高了程序开发的效率。

configuration对象:

Configuration类负责管理Hibernate的配置信息。

Hibernate运行时需要获取一些底层实现的基本信息,其中几个关键属性包括:

a.数据库URL

b.数据库用户

c.数据库用户密码

d.数据库JDBC驱动类

e.数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如Hibernate数据类型到特定数据库数据类型的映射等。

以上信息一般情况下由hibernate.cfg.xml或者hibernate.properties文件来配置,实现与不同数据库的连接。

Session对象:

Session是持久层操作的基础,相当于JDBC中的Connection:

实例通过SessionFactory实例构建:

Configurationconfig=newConfiguration().configure();

SessionFactorysessionFactory=config.buildSessionFactory();

Sessionsession=sessionFactory.openSession();

之后我们就可以调用Session所提供的save、find、flush等方法完成持久层操作。

因此Session对象也封装了所有对数据库的操作来实现Hibernate对数据库的操纵功能,如:

Save()方法实现增加和保存;

Delete()方法实现数据的删除;

Update()方法实现数据更新和修改;

Find()方法实现数据的检索;

Hibernate会根据不同的操作自动生成相应的SQL语句,从而实现了程序员对PO对象的操作转化为对数据库关系表的操作。

2.2.3Spring

简单的来说,spring是一个轻量级的开源的控制反转(IOC)和面向切面(AOP)的容器框架。

主要是为了解决企业应用程序开发中的复杂性而创建的。

它的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架(struts、hibernate等)。

Spring由7个定义良好的模块组成,Spring模块构建在核心容器之上(就是我们所说的IOC容器),核心容器定义了创建、配置和管理bean的方式。

组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

spring的目标是实现一个全方位的整合框架,在spring框架下实现多个子框架的组合,这些子框架之间可以相互独立,也可以使用其他框架方案加以替代。

IOC:

控制反转,它是不是什么技术,它是一种设计模式。

所谓控制反转就是由容器控制程序间的关系,而不是传统实现中,由编程代码直接操控。

说白了就是由容器控制对象间的依赖关系。

DI:

DependencyInjection依赖注入,即组件(对象)之间的依赖关系由容器在运行期间决定。

其实依赖注入和控制反转是对同一概念的不同描述。

Spring通过这种控制反转(IoC)的设计模式促进了松耦合。

当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

我们可以把IoC模式看做是工厂模式的升华,可以把IoC看作是一个大工厂,只不过这个大工厂里要生成的对象都是在XML文件中给出定义的,然后利用Java的“反射”编程,根据XML中给出的类名生成相应的对象。

从实现来看,IoC是把以前在工厂方法里写死的对象生成代码,改变为由XML文件来定义,也就是把工厂和对象生成这两者独立分隔开来。

其实控制反转就是不需要我们手动new一个对象了,它把我们所要实例化的对象都写在了配置文件xml中了,一般这个类都是我们应用的业务类。

框架内部已经将xml中配置的类自动实例化成对象,当我们调用某个类A,并且这个类中存在另一个类B时,我们就说A依赖于B,容器就会将B对象注入到A类中,大多数情况下都是通过A类中的setB()方法注入进来的。

以前是由类中的代码查找类并new对象,现在是xml文件控制的对象的生成,控制权由程序代码转移到了xml文件中。

这样做还是有好处的,假如在A中需要5个对象,那么A类中就会new5个对象,不管以后A中用不用到这5个类,只要

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1