在线考试系统毕业设计论文(4)

2019-04-08 21:41

图3-10 考试科目信息表

tb_ student用于保存所有学生考试信息以及成绩信息,该表结构如图3-11所示。

图3-11 学生信息表

tb_ Blank用于保存所有填空题信息,该表结构如图3-12所示。

图3-12填空题数据表

3.4.2 数据库的安全性、信息的保密性考虑

由于考试系统的特殊性,数据的安全与保密显得尤为重要。保密性是指用户在网上的所有信息应有一定的保密度,不同类型的用户之间的内容是互相保密的。安全性是指用户参加一次考试是一个过程,对于所有的用户,服务器都加以跟踪。为了确保其安全与保密性,采用如下方案:

一、考生的身份验证。凡进入在线考试的用户,都要通过用户身份验证才能进入。教师用户按权限进行操作,确保数据的公共性与私有性。不允许用户执行非法的操作,防止用户无意或有意进行的破坏。

9

二、在时间上加以严格控制。在用户登录后将用户的登陆时间存入到浏览器的cookies中,当用户断线重新连接后,进行的考试时间仍然是以最初登录考试系统的时间为参考点,而不是重新生成。

禁止用户查看试卷源文件及拷贝功能, 即用户不能下载试卷到本地,不能通过获取源代码得到试卷。

以下为禁止使用鼠标右键功能的javascript脚本语言代码:

//屏蔽F5刷新键

//屏蔽Enter键

10

4 在线考试系统的详细设计

4.1 公共类的设计和实现的功能

在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重复率,也可以方便代码的管理。本系统中创建了一个公共类HibernateSessionFactory类,其中包含getSession方法。具体代码如下:

public static Session getSession() throws HibernateException {

Session session = (Session) threadLocal.get();//从ThreadLocal对象中

获得Session对象

if (session == null || !session.isOpen()) {//判断获得的Session对象是

否为空或者未打开

if (sessionFactory == null) {//如果没有创建SessionFactory对象,

则首先创建

}

//如果SessionFactory对象不为空,则调用其openSession方法创建

rebuildSessionFactory();

Session对象

null;

}

public static void rebuildSessionFactory() {

session = (sessionFactory != null) ? sessionFactory.openSession():

}

threadLocal.set(session);//在ThreadLocal对象中保存该Session对象

return session;

configuration.configure(configFile);//读取配置文件 sessionFactory =

configuration.buildSessionFactory();//根据配置文件创建

11

sessionFactory对象

}

public static void closeSession() throws HibernateException {

Session session = (Session) threadLocal.get();//从ThreadLocal对象中

获得Session对象

}

public static org.hibernate.SessionFactory getSessionFactory() {//取得SessionFactory对象

}

return sessionFactory; if (session != null) { }

session.close();

threadLocal.set(null);//将当前线程Session对象从ThreadLocal对象中移

4.2登录和注册模块实现过程

4.2.1 登录模块

实现登录模块的具体步骤如下:

(1) 新建一个名为Login.jsp的网页,用于实现系统的登陆功能。 (2) 新建index.jsp和index.html分别放在student和teacher下面,用于登录时不同的角色界面。

(3) 新建register.jsp页面,当学生和管理员首次进入该系统,由于后台数据库中没有他们信息,进入register.jsp页面。 系统登录界面如下图4-1所示。

12

图 4-1 系统登录界面

登录界面关键代码如下:

public String execute() throws Exception {

if(\.equals(role)) {//如果以学生身份登录

if(studentService.allowLogin(id, password)) {

Student studentInfo =

studentService.getStudentInfo(id);

//保存学生记录到session范围 Map session =

ActionContext.getContext().getSession();

session.put(\, studentInfo); return \;

}else { }

addActionError(\该学生编号不存在,或者密码不正确!\); return this.INPUT;

}else {

if(teacherService.allowLogin(id, password)) {

return \;

}else {

13


在线考试系统毕业设计论文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:六年级数学思维训练2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: