私はログインフィルタを簡単に実装しています。ログインフィルタjavaサーブレット
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(false);
if (session == null || session.getAttribute("loggedInUser") == null) {
response.sendRedirect(request.getContextPath() + "/login.jsp");
} else {
chain.doFilter(request, response);
}
}
@Override
public void destroy() {}
}
私はセッション属性loggedInUser
なしで登録されているすべてのページ(すなわち。/account?id=1
)に行くとき、フィルタが正常に動作します。私はログインページにリダイレクトされます。 しかし、存在しないページ(つまり、/blablabla.html
)に行くと、フィルタは再びログインページにリダイレクトされます。存在しないページに入ると404エラーが発生し、/login
にリダイレクトする方法はありますか?