以下过滤器位于我的prj2
中。从那个prj2
开始,我正在检查会话是否在那里,我想重定向到prj1
的登录页面,其中包含网址/prj1/sessionexpiry
。在以下场景中,它不会重定向到登录页面而不会抛出任何异常。
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse hsr = (HttpServletResponse) res;
HttpServletRequest hreq = (HttpServletRequest) req;
HttpSession session = hreq.getSession(false);
if (session == null) {
hsr.sendRedirect("/prj1/sessionexpiry");
return;
} else {
chain.doFilter(req, res);
}
}
任何帮助将不胜感激
答案 0 :(得分:0)
您是否在注销servlet或其他位置使会话无效?否则,会话永远不会为null。
request.getSession().invalidate();
使用此选项使会话无效,然后在下次检查会话是否有效时,它将获得空值。