- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
考试计时并自动提交试卷.PDF
考试计时并自动提交试卷
任务说明
在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能。由于在答卷过程中,
试卷不能刷新,所以需要使用Ajax 实现无刷新操作。运行本实例,访问准备考试的页面index.jsp,
在该页面中,单击 “开始考试”按钮,将打开新窗口显示开始考试的页面,如图1所示,页面会
自动计时,当考试时间结束时,将自动提交试卷,并弹出如图2 所示的提示对话框。
图1 自动计时的开始考试页面 图2 自动提交后,弹出提示对话框
关键技术
本实例主要是利用Ajax 异步提交技术和Servlet 技术实现的。显示在考试页面中的计时时间
是在Servlet 中设置的,需要通过Ajax 的异步提交不断地请求Servlet,从而获得服务器返回的最
新的计时时间的数据。为了便于维护和代码的重用,可以将Ajax 的请求方法封装到一个JS文件
中,该方法可以作为一个公共方法,在程序中使用时可以直接调用。
在JS文件中构建XMLHttpRequest 对象以及请求方法,代码如下:
01 /**
02 * 构建XMLHttpRequest对象并请求服务器
03 * @param reqType:请求类型 (GET或POST)
04 * @param url:服务器地址
05 * @param async:是否异步请求
06 * @param resFun:响应的回调函数
07 * @param parameter:请求参数
08 * @return:XMLHttpRequest对象
09 */
10 function httpRequest(reqType,url,async,resFun,parameter){
11 var request = null;
12 if( window.XMLHttpRequest ){ //非IE浏览器,创建XMLHttpRequest对象
13 request = new XMLHttpRequest();
14 }else if( window.ActiveXObject ){ //IE浏览器,创建XMLHttpRequest对象
15 var arrSignatures = [Msxml2.XMLHTTP, Microsoft.XMLHTTP,
Microsoft.XMLHTTP, MSXML2.XMLHTTP.5.0,MSXML2. XMLHTTP.4.0,
MSXML2.XMLHTTP.3.0, MSXML2.XMLHTTP];
16 for( var i = 0; i arrSignatures.length; i++ ){
17 request = new ActiveXObject( arrSignatures[i] );
18 if( request || typeof( request ) == object )
19 break;
20 }
21 }
22 if( request || typeof( request ) == object ){
23 if(reqType.toLowerCase()==post){ //以POST方式提交
24 request.open(reqType, url, true); //打开服务器连接
25 //设置MIME类型
26 request.setRequestHeader(Content-Type,
application/x-www-form-urlencoded);
27 request.onreadystatechange = resFun; //设置处理响应的回调函数
28 parameter = encodeURI(parameter); //将参数字符串进行编码
29 request.send(parameter); //发送请求
30 }
31
文档评论(0)