public class ActiveUserListener implements HttpSessionListener{ @Override
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
} @Override
public void sessionDestroyed(HttpSessionEvent arg0){
                 //在这里面怎么实现页面自动跳转呢
}
}

解决方案 »

  1.   

    Session超时怎么自动跳转页面, 通常不是你这样做的。在web.xml中我们可以定义一个
    <session-timeout>30</session-timeout> 定义30分钟session过期然后我们会有一个Filter    在Filter中我们获取 session.getAttribute(key) == null 
    response.sendRedirect("login.jsp");你明白意思了么?
      

  2.   

    也就是说通过过滤器,来检查所有的我们感兴趣的请求判断session中,你感兴趣的key 是否还存在,存在即没有过期,不存在即过期了。
    一旦过期,则重定向到登陆页。
      

  3.   

    public void sessionDestroyed(HttpSessionEvent arg0){                
                     //在这里面没办法实现页面自动跳转
        }
    支持楼上做法
      

  4.   

    lz想错了,HttpSessionListener(特别是处理超时这个事件)并不是针对用户的request/response的,而且也不存在request/response,如果有,也就不可能超时了。lz应该用filter如果超时,那么session中原本存放的信息不存在,那么就直接forward/redirect到相应页面
      

  5.   


    实现不了。。你想法错了。 这个类主要处理session监听事件,比如统计在线人数这些等
      

  6.   

    Listener做不到。
    Servlet/JSP/Filter是请求处理路径上的部件,可以干预请求处理的响应结果。
    Listener受内部状态的触发而运行,当它运行的时候,并没有在某个请求的处理流程中,无法给用户返回结果页面。1楼的做法是可以的。
    另外,只要SessionListener中改变了某个属性的值,任何后来被访问的Servlet/JSP/Filter都可以依据这个属性的值,得到特定的返回结果。(也就是说,不光像1楼说的那样,可以用Filter做,Servlet/JSP做跳转效果也行的。)
      

  7.   

    sessionDestroyed不是在Session失效之前执行的吗?那就是说Session这个时候还在了
      

  8.   

    用 Interceptor 也是可以实现的