项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新登录,怎么做?思路怎样?

解决方案 »

  1.   

    session挂掉以后,系统会弹出一个对话框无解!
      

  2.   

    就是sessionout时间设置一下,然后建立一个错误页面,当程序判断session过期后,跳转,弹出信息
      

  3.   

    每打开一个页面,在onload里面计时,如果超过了session的过期时间,就跳转到登陆页面。这样可以不?
      

  4.   

    创建监听器 
    public class session监听器 extends HttpListener
    {
    public void sessionCreated()
    {
    }
    public void sessionDestory()
    {
    }
    }web.xml中
    <listener>
    xxxxx
    </listener>
      

  5.   

    咦,2楼怎么不见了?
    session死掉后会触发sessionDestory事件,你可以用拦截器拦截用户的操作,去查下当前用户的session是否还存在,不存在就返回到登录页面。
      

  6.   

    不行,你这样还要打开页面才能判断,我要的效果是,即使不进行任何操作,session挂掉后(比如说session超时),会自动弹出提示。
      

  7.   

    就相当于,点击退出登陆,清空sessiong,返回登陆页面不就可以了吗?
    每个jsp判断session为空则提示框框,返回登陆页面~~~
      

  8.   


    <script type="text/javascript" language="javascript">
    var enterTime = 0;
    window.onload=new function(){
    // 每一秒钟调用一次
    setInterval("redirect()", 1000);
    }
    function redirect(){
    var nowTime = new Date().getTime();
    if((nowTime - enterTime) >= "<%=session.getMaxInactiveInterval()%>"*1000){
    window.location.href="<%=request.getContextPath()%>/login.jsp"; 
    }
    enterTime = nowTime;
    }
    </script>
    把这块js代码加到页面上,就能够实现,session过期,跳转到login.jsp
      

  9.   

    public void sessionCreated()
    {
      将用户名和Session保存在Application中
    }
    public void sessionDestory()
    {
      将用户在Application中干掉!
    }在页面,每5秒使用Ajax访问服务端的某个Action后面带上用户名,在这个Action根据传递过来的用户在Application中找是不是有对于的值,没有则返回“请重新登录”,否则返回“正常”,在Ajax的JS代码中判断一下就可以实现了,简单吧?简单就给分分吧!PS:Ajax每次访问的时间间隔不要太短,否则人多了服务器受不了啊!
      

  10.   


    LZ,如果考虑性能情况下,可以在做某个操作的时候去判断一下session 是否有效,然后再做出相应的提示之类的。不要用实时调用查看!
      

  11.   

    goldenfish1919的思路很好,学习了!!把压力放到客户端比较好
      

  12.   

    楼主可以设置个定时器,定时检测session是否存在,不存在则弹出窗口!