java中,前后端分离,如何实现session失效后,页面操作自动跳转登录页。

现在的问题是我在过滤器中判断session失效后,重定向到登录页面,不跳转。... 现在的问题是我在过滤器中判断session失效后,重定向到登录页面,不跳转。 展开
 我来答
nangsgay
2017-05-10 · 超过19用户采纳过TA的回答
知道答主
回答量:46
采纳率:100%
帮助的人:24.6万
展开全部
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
      //获取根目录所对应的绝对路径
        String currentURL = request.getRequestURI();
        //截取到当前文件名用于比较
        String targetURL = currentURL.substring(currentURL.indexOf("/",1),currentURL.length());
//        System.out.println(targetURL);
        //如果session不为空就返回该session,如果为空就返回null
        HttpSession session = request.getSession(false);
        if((!"/index.html".equals(targetURL))&&(!"/login.action".equals(targetURL))&&(!"/regist.html".equals(targetURL))&&(!"/regist.action".equals(targetURL))){
            //判断当前页面是否是重定向后的登陆页面页面,如果是就不做session的判断,防止死循环
            if(session==null||session.getAttribute("username")==null){
                //如果session为空表示用户没有登陆就重定向到index.html页面
                //System.out.println("request.getContextPath()=" + request.getContextPath());  
                response.sendRedirect(request.getContextPath()+"/index.html");
                return;
            }
        }
chain.doFilter(request, response);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式