当前位置:首考文秘网>范文大全 > 教学设计 > 基于struts+hibernate+spring的在线考试系统的设计与实现

基于struts+hibernate+spring的在线考试系统的设计与实现

时间:2023-06-26 10:50:04 教学设计 来源:网友投稿

摘要:该文着重描述了在线考试系统的组成与结构,阐述了系统的设计方案、实现方法以及所采用的开发工具和相关技术,还重点剖析了部分环节的程序设计、模块开发过程。

关键词:框架技术;在线考试;组卷

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)23-5628-04

Design and Implementation Online Examination System Based on Struts+hibernate+spring

CHEN Xiao-hua

(Karamay Vocational&Technical College, Dushanzi 833600, China)

Abstract: This paper describes the composition and structure of the online examination system, elaborates the system design, implementation methods and the development of tools and techniques, but also focus on the analysis of the partial links program design, module development process.

Key words: frame technology; online examination; form the paper

随着计算机技术的发展及计算机的日益普及,在学校教育以及接受教育的方式也发生了相应改变.基于WEB在线考试与无纸化办公已成为大势所趋。因此, 本文结合信息技术背景下网络教育的特点, 设计并实现了一种基于struts+hibernate+spring的的在线考试系统, 并在实际中得到了初步的应用。

1 系统设计

1.1 关键技术

1.1.1Struts2框架技术

Struts2是Apache新推出的一个框架,于2007年上半年发布。此前的Struts1框架是世界上第一个MVC框架,得到了广泛的应用,至今已发展为一个成熟、稳定、性能较高的框架。相较于Struts1,Struts2框架整合了Struts1和WebWork的优点,它能更好的降低框架组件之间的耦合性,它的模块测试也更为方便,它还提供了强大的整合能力,它改进了Struts1的标签库,引入了OGNL表达式和值栈的概念,使表现层的编写更加简洁和方便。

1.1.2Spring框架技术

Spring是一个轻型容器,是一个目前非常活跃的开源项目。其核心是Bean工厂,用以构造我们所需要的模型。在此基础上,Spring提供了IoC(反转控制)和AOP(面向切面编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。

1.1.3hibernate框架技术

Hibernate是一个开放源代码的对象关系(ORM)框架,它对JDBC进行了非常轻量级的封装,它不仅提供从JAVA类到数据库表的映射,也提供了数据查询和恢复机制。ORM模式是指对象关系映射,用类中的方法来操作SQL语句,使得一切操作皆对象,优化了对JDBC的调用,大大提高系统的性能。同时,Hibernate支持大多数数据库,可与大多数主流J2EE应用服务器良好的集成。

Hibernate是一个面向Java 环境的对象/ 关系数据库映射工具,把Java类对应到数据库表中,并且采用了Xml技术、Java 反射等技术;Hibernate不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制。利用它能够大大地减少开发时人工使用SQL和JDBC 处理数据的时间,从而提高开发效率。

1.2 主要功能模块

1.2.1 试题管理模块

该模块主要用于管理题库中的试题,

题库管理功能可以实现试题分类、增加、修改、导入、导出功能。其中批量录入题目时题目文件要求以Microsoft Word文档的形式录入,并且文件内容要按照固定的模版编辑。

1.2.2 试卷管理模块

支持手工出卷、自动出卷、随机出卷三种出卷模式。

手工出卷:支持自定义卷面结构,可以添加题库中没有的试题,也可以从试卷库中选择已有试题,组成试卷进行考试,并且随时可以对该试卷进行修改。

自动出卷:需要考试管理员定义出卷策略,从题库中选择相关试题,系统自动根据策略从题库中抽取试题,组成试卷后在服务器端保存试卷副本,根据需要随时可以修改试卷。

随机出卷:需要考试管理员定义出卷策略,系统并不立即生成试卷,直到考生参加考试时,才根据策略从题库中抽取试题进行组卷,每个考生的 试卷都会不同,保证考试的保密性和安全性。

1.2.3 考试安排模块

针对考试,从组卷策略、答卷模式、答卷时间、分数设置、出题顺序、考试安排、指定评卷人等多个方面进行管理。针对考生发送考试通知,还可设置考生是否允许查看答卷、成绩、答案等。

2 系统实现

2.1 系统实现模型

系统采用B/S模型,实现过程中将其划

分为三层结构。

2.2 实现举例—学生功能模块

2.2.1 表示层

根据功能模块分析,学生功能模块主要有如下几个jsp文件:

Login.jsp:登录界面,在此输入登录信息。

Student.jsp:学生登录后主界面,在此学生选择要做什么。

Examinee.jsp:考试安排界面。在此可以看到考试安排信息,可以选择进入考试。

Exam.jsp:考试试卷界面。

Resultstudent.jsp:成绩查询界面。

studentproinfo.jsp:信息查看页面,在此可以看到自己注册时的全部信息。

modifypwd.jsp:密码修改页面。

talkmain.jsp:论坛交流主页面。

2.2.2 业务层

图1为学生功能模块Action组件的映射图。

2.2.3 控制层

1)利用spring的Ioc,将Struts的action托管给spring。(举例说明)

<!-- 定义Struts配置 -->

<bean name="/ajax_getServerTime"

class="com.demo.struts.actions.AjaxAction" >

</bean>

<bean name="/login" class="com.demo.struts.actions.LoginAction">

<property name="userDAO">

<ref local="userDAO" />

</property>

</bean>

2)利用spring配置数据源和hibernate

<!--配置数据源 -->

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName">

<value>org.gjt.mm.mysql.Driver</value>

</property>

<property name="url">

<value> jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testonline </value>

</property>

<property name="username">

<value>sa</value>

</property>

<property name="password">

<value></value>

</property>

</bean>

<!-- 配置Hibernate -->

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource">

<ref local="dataSource" />

</property>

<property name="mappingResources">

<list>

<value>com/demo/hibernate/beans/User.hbm.xml</value>

<value>com/demo/hibernate/beans/Test.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.SQLServerDialect

</prop>

<prop key="hibernate.show_sql">true</prop>

</props>

</property>

</bean>

3)dao类在spring中接受托管 (举例说明)

<!-- 定义DAO -->

<bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean>

<bean id="testDAO" class="com.demo.hibernate.dao.TestDAO">

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean>

<!-- 定义DAO代理 -->

<bean id="UserDAOProxy"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<property name="target">

<ref local="userDAO" />

</property>

<property name="transactionAttributes">

<props>

<prop key="insert*">PROPAGATION_REQUIRED</prop>

<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>

<bean id="testDAOProxy"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<property name="target">

<ref local="testDAO" />

</property>

<property name="transactionAttributes">

<props>

<prop key="insert*">PROPAGATION_REQUIRED</prop>

<prop key="update*">PROPAGATION_REQUIRED</prop>

<prop key="delete*">PROPAGATION_REQUIRED</prop>

<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>

4)在struts如何使用dao类(举例说明)

public UserDAO getUserDAO() {

return userDAO;

}

public void setUserDAO(UserDAO userDAO) {

this.userDAO = userDAO;

}

由于在spring的配置文件中对dao类和action类做了配置,所以在action中就使用相应的get/set方法去获得要使用的dao类。

5)数据访问层

用dao类继承HibernateDaoSupport实现数据库的操作。

4 结束语

在线考试系统在教学和网络远程教育领域中有着重要的地位。它可以为学生、教师和教学管理部门提供很多的方便, 提高了学生学习和教师教学的效率。本文开发的系统经过使用测试后,发现系统在实现的题型和安全性上还要多考虑,有待改进。

参考文献

[1] 陆荣幸,郁洲,阮永良,等.J2EE平台上MVC设计模式的研究与实现[J].计算机应用研究,2003,13(3):144-146.

[2] 徐鹏.基于Browser/Webserver模式的电子表单系统[J].计算机科学,2001,28(12):47-53.

[3] 倪晓秋.J2EE开发案例[M].北京:中国水利水电出版社,2005.

[4] 张宏森.四层B/S结构及解决方案[J].计算机应用研究,2002,22(9):67-73.

[5] 孙卫琴.基于MVC的JAVA WEB设计与开发[M].北京:电子工业出版社,2005.

[6] Walls C,Breidenbach R.Spring in Action 中文版[M].李磊,译.北京:人民邮电出版社,2006.

[7] 夏昕,曹晓钢,唐勇.深入浅出 Hibernate[M].北京:电子工业出版社,2005.

[8] 孙卫琴.精通Struts基于MVC的JavaWeb设计与开发[M].北京:电子工业出版社,2005.

[9] 白广元.JavaWeb整合开发完全自学手册[M].北京:机械工业出版社,2009.

[10] 李刚.轻量级J2EE企业应用实战[M].北京:电子工业出版社,2007.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

推荐访问:在线 考试 设计 系统 Struts

版权所有:首考文秘网 2015-2024 未经授权禁止复制或建立镜像[首考文秘网]所有资源完全免费共享

Powered by 首考文秘网 © All Rights Reserved.。备案号:冀ICP备15026071号-91