入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

springmvc session丢失 重新登录

创建时间:2017-05-26 投稿人: 浏览次数:447

参考

http://zhengjunxiang.iteye.com/blog/1990689

具体做法

由于本人目前开发的项目,几乎所有的页面显示都是基于ajax请求,所以,不让系统变复杂,取一个简单方式来实现。


  1. 后台

权限拦截器检查session为空的时候,添加reponse头,用来作为标记
 //2.拦截未登录操作
        HttpSession session = request.getSession();
        User user=UserSessionUtil.getCurrentUser(session);
        if(user==null){
            response.setHeader("sessionstatus", "timeout");
            //throw n``ew SessionNullException("用户未登录");
            return false;
        }


  1. 前台

全局范围内,每次ajax请求结束,都会进行读取请求头,判断是否有用户session为空的情况
/**
 * session 丢失,重定向到登录页面,具体过程:
 *      权限拦截器rightIngerceptor拦截到用户session丢失,就会在reponse头添加一个sessionstatus:timeout,
 *      每次ajax请求后都会执行以下函数,从而实现sesion丢失后重定向问题
 */
$.ajaxSetup({   
    contentType:"application/x-www-form-urlencoded;charset=utf-8",   
    complete:function(XMLHttpRequest,textStatus){
            console.log("sesssion");
            var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,  
            if(sessionstatus=="timeout"){   
                        warn_dialog("登录时间过长,请重新登录!","small-dialog");
                        //如果超时就处理 ,指定要跳转的页面  
                        setTimeout(function(){
                            window.location.replace("${ContextPath}/welcome/toHomePage"); 
                        },2000);

            }   

    }   
 }); 
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像