java中,前后端分离,如何实现session失效后,页面操作自动跳转登录页。
1个回答
展开全部
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询