大家好,欢迎来到IT知识分享网。
问题由来
由于网站设置了默认的session失效时间是30分钟,但是当用户在某个页面停留时间超过30面的话,session就失效了,需要重新登录。这对于一般的页面没有问题,但是对于一些编辑页面问题就大了,用户辛辛苦苦编辑的内容已提交,就什么也没有了。
解决方法
在需要保持session的页面,包含一个不可见的iframe,在iframe中,每个一定的时间就向服务器端发送请求,从而保持session。
实现代码
在要保持session的页面添加如下代码:
<iframe src="/lc/keepSessionAlive.jsp" frameborder="0" height="0" scrolling="no"></iframe>
keepSessionAlive.jsp的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
//System.out.println(Math.random());
%>
<script type="text/javascript">
function keepsession(){
var href = document.location.href;
var url = href.substring(0, href.indexOf("jsp"))+"jsp?RandStr="+Math.random();
document.location=url;
}
window.setTimeout("keepsession()",600000);//request the server per 10 mins.
</script>
注意事项
重新加载页面的时候,要加上随机数的参数,否则页面有可能页面被缓存起来,达不到想要的效果。url后面加随机参数,在很多场合都有用到,当你觉得问题莫名其妙的时候,你想到过随机数参数吗?
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112531.html