当前位置: 代码迷 >> Java Web开发 >> 怎么实现不刷新页面时的session超时控制
  详细解决方案

怎么实现不刷新页面时的session超时控制

热度:349   发布时间:2016-04-16 21:48:32.0
如何实现不刷新页面时的session超时控制
当有提交请求处理的时候,可以用拦截器或者过滤器实现超时监听

我现在想实现,页面无刷新,使用js计数器控制页面超时

每次鼠标单击都重新赋值计时器为0

若长时间没有点击鼠标,超时点击之后跳转到login.jsp

又没有示例代码呢?

新手锻炼,麻烦各位大神指教
------解决思路----------------------
首先保证设置session的过期时间
然后在页面上进行定时无状态刷新,判断session中(比如)用户名,如果为空则跳转,这样的话不需要点鼠标也可以自动跳转
给你个demo

 <%@ page contentType="text/html; charset=UTF-8" language="java"
pageEncoding="UTF-8"%>
<html>
<head>
<link rel="StyleSheet" href="<%=basePath %>/newtouch/default/css/tab.css"
type="text/css" />
<script type="text/javascript"
src="<%=basePath%>/newtouch/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<%=basePath %>/newtouch/js/tab.js"></script>
<script type="text/javascript">
/**
 * 定时刷新div 并监测session如果发生变化中则跳转到登录页面
 */
setInterval(function(){
$("#dingshi").load(location.href+" #dingshi>*","");
var un = $("#user_namejc").val();
if(un==""){
      location.href = '<%=basePath%>/login';
}
}, 1000);
</script>
</head>
<body>
<div id="dingshi" style="display:none">
<input type="text" id="user_namejc" value="${userNo}">
     </div>
</body>
</html>

------解决思路----------------------
我用的是SSH框架l配置的监视器:  1.web.xml文件  
    <listener-class>
      com.dwg.FilterAndListener.SessionListener
    </listener-class>

2.写的类 :
package com.dwg.FilterAndListener;



import javax.servlet.http.*;
public class SessionListener implements HttpSessionListener {
//private ServletContext context = null;//servlet上下文
public void sessionCreated(HttpSessionEvent event) {
  //因为创建session没有动作,所以这个方法就可以不写了
System.out.println("----创建session-----");  
 }
  public void sessionDestroyed(HttpSessionEvent event) {
    //监听session,当session过期后,就转道登陆页面
  System.out.println("----session失效-----"); 
//    if (context == null) 
//      storeInServletContext(event);
}
//    private void storeInServletContext(HttpSessionEvent event) {
//    HttpSession session = event.getSession();
//    context = session.getServletContext();
//    context.setAttribute("sessionCounter", this);
//}
}
  相关解决方案