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

现在的问题是我在过滤器中判断session失效后,重定向到登录页面,不跳转。

第1个回答  2017-05-10
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);
}

本回答被提问者采纳
相似回答