如何实现不刷新页面时的session超时控制
当有提交请求处理的时候,可以用拦截器或者过滤器实现超时监听
我现在想实现,页面无刷新,使用js计数器控制页面超时
每次鼠标单击都重新赋值计时器为0
若长时间没有点击鼠标,超时点击之后跳转到login.jsp
又没有示例代码呢?
新手锻炼,麻烦各位大神指教
------解决思路----------------------
首先保证设置session的过期时间
然后在页面上进行定时无状态刷新,判断session中(比如)用户名,如果为空则跳转,这样的话不需要点鼠标也可以自动跳转
给你个demo
pageEncoding="UTF-8"%>
/newtouch/default/css/tab.css"
type="text/css" />
/**
* 定时刷新div 并监测session如果发生变化中则跳转到登录页面
*/
setInterval(function(){
$("#dingshi").load(location.href+" #dingshi>*","");
var un = $("#user_namejc").val();
if(un==""){
location.href = '/login';
}
}, 1000);
------解决思路----------------------
我用的是SSH框架l配置的监视器: 1.web.xml文件
com.dwg.FilterAndListener.SessionListener
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);
//}
}