好文档 - 专业文书写作范文服务资料分享网站

毕业论文-基于JavaWeb的在线考试系统的设计与实现-精品

天下 分享 时间: 加入收藏 我要投稿 点赞

Java Web应用开发——在线模拟考试系统的设计与实现

finally {

//释放数据库连接 rs.close(); stmt.close(); conn.close(); } %>

4.2 登陆注册模块

4.2.1 登录模块

用户登录页面比较简单,为防止用户登录的操作错误,应设置错误处理页面,在登录操作过程中,一般发生的错误有:用户输入了错误的用户名或密码、用户直接单击了登录按钮,对上述情况的判断就要通过Servlet文件来实现。当用户登录的时候,输入的帐号或者密码有其中一项为空时,会有提示框提示,提示您帐号或者密码不能为空。实现这个功能的是用javascript实现的,具体代码如下所示:

验证输入不为空的脚本代码

在登录页面时,当用户提交了登录资料后,就由“loginvc.jsp”这个页面进行验证,它的工作

16

Java Web应用开发——在线模拟考试系统的设计与实现

主要是连接到数据库,从数据中找出输入的用户名和密码并判断其是否一致。如果用户输入了错误的用户名和密码,就会跳出一个登录失败的页面。

用户可以点击返回按钮回到其刚才登录的界面,然后重新输入用户名及密码进行再次登录。若用户提交正确的用户和密码后,如果记录验证无误,就通过JSP重定向语句response.sendRedirect()跳转到相应的主界面。

教师以及管理员的登录验证跟考生相似,只是查询条件和连接的数据库表不同,以及登陆成功之后,跳转的页面不同。

4.2.2 考生注册模块

在此模块,考生需要填写用户名、密码、确认密码、真实姓名。如若填写中缺少一项,那么会有提示,其功能也是由上面所说的一样,通过调用javascript实现的,这里只提供下截图,主要代码如上,如图4-1所示:

图4-1 注册提示页面

当用户填写的内容完全符合注册标准后,点击注册按钮,会转到注册成功的页面;如若用户名已经被注册,会转到注册失败页面,提醒注册用户可能是该用户名已经注册。在此只以注册成功的页面为例,如图4-2所示:

图4-2 注册成功页面

17

Java Web应用开发——在线模拟考试系统的设计与实现

完成注册模块的主要代码如下所示:

首先获取上个页面传过来的数据,用户名、密码、真实姓名

String username = request.getParameter(\ String password = request.getParameter(\ String realname = request.getParameter(\

out.println(username); //打印出username 其次开始连接数据库 try{

Class.forName( \Connection

conn=DriverManager.getConnection(\d=890427&useUnicode=true&characterEncoding=gbk\

Statement stmt=conn.createStatement(); ResultSet rs=null; 查询user表,看用户名是否存在

String sql=\ rs=stmt.executeQuery(sql);

如果存在,提示“ 您好,您注册的用户名已经存在,请重新输入 ”,如果不存在,把接收过来的值付给新的变量:

String s_username=request.getParameter(\ String s_password=request.getParameter(\ String s_realname=request.getParameter(\执行SQL插入语句,把得到的值插入到user表中

sql = \

value('\

如果插入成功,提示:“恭喜您注册成功!”

4.3考生模块

考生登录系统并且用户名也密码正确后,会直接跳转到学生主页,本页面中,考生可以在左侧选择自己下一步要做的事情,有开始考试、历史成绩查询、修改密码。在页面中间,有提示语,告诉考生每个按钮都可以操作什么功能;若考生对考试流程不太熟悉,可以点击帮助,来查询相关问题的答案。如图4-3所示:

18

Java Web应用开发——在线模拟考试系统的设计与实现

图4-3考生主页

4.3.1 开始考试模块

考生点击开始考试,会首先弹出关于所选考试科目的一些介绍,比如考试时间和总共有多少道题目等,然后点击开始考试,倒计时开始,考生选择上一题,下一题进行答卷,当考生答到最大题数时,下一题变成完成答卷按钮。点击完成答卷,进入成绩页面,考生可以知道自己的成绩,并且,成绩通过后台,插入到数据库中。如图4-4所示:

图4-4 考生考试页面

执行的具体代码如下所示: <%

HttpSession sess=(HttpSession)request.getSession(true); int category = (Integer)sess.getAttribute(\ String username = request.getParameter(\ MysqlDjtDao md = new MysqlDjtDao(); //引进包

19

Java Web应用开发——在线模拟考试系统的设计与实现

int valid = md.selectTestRecordByuser(username,category);//去test_record表查询有无考试记录

valid=0;//控制返回值,自己可以自由修改。 if( valid==0 ){

Calendar cl = Calendar.getInstance();//java util 包 表提供的系统时间Calendar long starttime = cl.getTimeInMillis();//得到当前时间的毫秒数

long endtime = starttime+1800000; sess.setMaxInactiveInterval(3600); //设置session的存活时间 sess.setAttribute(\ sess.setAttribute(\ List tmid = new ArrayList();//指定传入的类型 建立一个集合 准备存放抽到的题目的ID号

tmid.add(0);//设置默认值0

sess.setAttribute(\ int fenshu =0;

sess.setAttribute(\

List ddcount = new ArrayList(); sess.setAttribute(\

List allwts = new ArrayList();//建立问题question对应的实体类 来存放查到的题目信息

List listsId = md.selectQInfoCount(category);//某个科有多少个问题 int qnum = md.selectQNum(category);//共需要几个问题 sess.setAttribute(\

Random rand = new Random();//Java提供的得到数字的类 for( int a=0;a

int hao = rand.nextInt(listsId.size()-1);//取一个随机数,不超过题目的总数 rand.nextInt()取一个随机数

for( Integer vd:tmid ){//去掉重复的题 泛型循环 if( vd==hao ){

hao = rand.nextInt(listsId.size()-1);//如果重复再重新抽,即重新生成一个随机数

} }

int bcid = listsId.get(hao);//根据抽到的数得到该题目的Id号

Question qs = md.selectQInfoByid(bcid);//根据Id号查询题目的信息 allwts.add(qs);//把查到的题目的信息插入到allwts集合中 tmid.add(hao);//把已经用过的随机数放入集合,防止重复抽题 }

sess.setAttribute(\%>

}else{

request.setAttribute(\已经答过题了,不能重复答题!\

20

毕业论文-基于JavaWeb的在线考试系统的设计与实现-精品

JavaWeb应用开发——在线模拟考试系统的设计与实现finally{//释放数据库连接rs.close();stmt.close();conn.close();}%>4.2登陆注册模块4.2.1登录模块用户登录页面比较简单,为防止用户登录的操作错误,应设置错误
推荐度:
点击下载文档文档为doc格式
55atc7z7dv1ujto7zfol
领取福利

微信扫码领取福利

微信扫码分享