5.2.4 找回密码的实现过程
运行网络在线考试系统时,首先进入的是考生登录页面,在该页面中单击“找回密码”按钮,即可进入到找回密码第一步页面,如图5-6所示,用于输入准考证号,在该页面中输入准考证号。单击“下一步”按钮,即可进入到找回密码第二步页面,如图5-7所示,用于输入密码提示问题答案,在该页面的“密码提示问题”文本框中将显示提示问题,在“密码提示答案”文本框中输入密码提示问题的答案。单击“下一步”按钮,进入到找回密码第三步页面,如图5-8所示,用于显示找回的密码。
图5-6 找回密码第一步
图5-7 找回密码第二步
19
基于Web的网络在线考试系统的设计与实现
图5-8 找回密码第三步
a) 实现找回密码第一步---输入准考证号
在找回密码第一步页面中,只需要放置一个用于获取准考证号的表单及对应的表单元素即可,关键代码如下:
准考证号: 找回密码第一步对应的方法seekPwd1()的具体代码如下: private ActionForward seekPwd1(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ StudentForm studentForm = (StudentForm) form; StudentForm s=studentDAO.seekPwd(studentForm); request.setAttribute(\ if(s.getID().equals(\ request.setAttribute(\您输入的准考证号不存在!\ return mapping.findForward(\ }else{ return mapping.findForward(\} } 20 b) 实现找回密码第二步---输入密码提示问题答案 在找回密码第二步页面中,首先添加一个表单,并将第一步中返回的提示问题答案显示在相应的文本框中,然后在该表单中添加一个用于记录考生档案ID的隐藏域,最后在该表单中添加用于输入密码提示问题答案的文本框及相应的按钮,关键代码如下: 密码提示问题: 密码提示答案: c) 实现找回密码第三步---成功找回密码 准考证号: 密码 5.3.1 在线考试模块的概述 在线考试模块的主要功能是允许考生在网站上针对指定的课程进行考试。在该模块中,考生首先需要阅读考试规则,在同意所列出的考试规则后,才能选择考试,在选择考试课程后,系统将随机抽取试题,然后进入考试页面进行答题,当考生提交试卷或者到达考试结束时间时,系统将自动对考生提交的试卷进行评分,并给出最终考试成绩。在线考试模块的系统流程如图5-9所示: 开始 否 同意考试规则 是 选择考试课程 否 准备考试 是 显示本次考试成绩 随机抽取试题并开始答题 提交试卷/到达考试时间 结束 图5-9 在线考试模块的系统流程图 21 基于Web的网络在线考试系统的设计与实现 5.3.2 在线考试模块的技术分析 由于本系统采用的是Struts框架,所以在实现在线考试模块时,需要编写在线考试模块对应的ActionForm类和Action类。下面将详细介绍如何编写在线考试模块的ActionForm类和Action类。 a) 编写在线考试模块的ActionForm类 在线考试模块涉及的数据表是tb_Lesson(课程信息表)、tb_Questions(考试题目信息表)和tb_stuResult(考试成绩表),通过这3个数据表可以创建出对应的ActionForm类,可以在各自对应的模块中创建。 b) 创建在线考试模块的Action类 在线考试模块的Action实现类Student继承了Action类。在该类中,首先需要在该类的构造方法中分别实例化在线考试模块的StartExamDAO类。Action实现类的主要方法是execute(),该方法会被自动执行,这个方法本身没有具体的事务,它是根据HttpServletRequest的getParameter()方法获取的action参数值执行相应方法的。在线考试模块Action实现类的关键代码如下: public class StartExam extends Action { … //此处省略了声明并实例化StartExamDAO类的代码 public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response) { String action = request.getParameter(\获取action参数的值 if (\ return startExam(mapping, form, request, response); }else if(\ return submitTestPaper(mapping,form,request,response); }else if(\显示考试计时 return showStartTime(mapping,form,request,response); }else if(\显示考试时间 return showRemainTime(mapping,form,request,response); }else{ request.setAttribute(\操作失败!\ return mapping.findForward(\ } } … //此处省略了该类中其他方法,这些方法将在后面的具体过程中给出 } 5.3.3 选择考试课程的实现过程 考生登录到网络在线考试的前台首页后,单击“在线考试”超链接,将进入到考试规则页面,在该页面中单击“同意”按钮,如图5-10所示,即可进入到选择考试课程页面,在该页面中将以下拉列表框的形式显示需要参加考试的课程,如图5-11 22

