在线考试中,为了防止页面异常关闭,需要用到cookie来存储答案,设计要求如下
(1)每选择一个选项后,将答案保存在cookie中;
(2)为保证session不过期,每隔2分钟用jquery向后台提交请求,请求的地址为空页面;
(3)cookie有几个地方要注意的
a.长度限制
b.保存时间
c.使用人的范围
1.首先来解决这个session的问题
session不过期只要加一个这个函数
function keepsession(){
$.ajax({
type: "post",
contentType: "application/json",
url: "sessionKeeper.aspx"
})
}
setInterval(keepsession, 3000);
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
详细点的用法可以参考http://www.jb51.net/shouce/htmldom/jb51.net.htmldom/htmldom/met_win_setinterval.asp.html
记得在该jsp文件所在同一目录下新建一个空白页面,名字是sessionKeeper.asp,里面啥也不用写~~~
==================我是分隔符======================
我来更新啦,上面那样写是不对的。有个大神告诉我,.aspx是.net的文件,这个地址用在这里是无效的,要用jsp文件。
那么什么地址是有效的呢?就是能访问的地址,在浏览器里直接输入以后可以返回结果的,即使是这里说的一个空文件。
但是并不能简单的把文件后缀一改就算了,因为由于过滤器的原因,WEB-INF目录下的jsp文件是不能直接访问的,需要通过controller类访问,就是之前跳到这个页面的这种访问方式。
所以就存在两种解决方式:
第一种方法,在WEB-INF目录外即webapp这个目录下新建这个jsp文件
可以检验一下是否可以访问到,随便写点字。
浏览器地址栏输地址,tleave是项目名哦,后面直接加这个文件名
证明是可以访问到的,说了要空白页面,那再把这些数字删掉好啦
所以上面那个函数改成这样子
function keepsession(){
$.ajax({
type: "post",
contentType: "application/json",
url: "/tleave/sessionKeeper.jsp"
})
}
第二种方法就是写一个controller类,指