Ich habe eine einfache Implementierung von Login-Filter.Login Filter Java Servlet
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() {}
}
Wenn ich zu jedem registrierten Seite gehen (d. /account?id=1
) ohne Session-Attribut loggedInUser
, Filter funktionieren gut. Es leitet mich zur Anmeldeseite um. Aber wenn ich auf nicht existierende Seite gehe (d. H. /blablabla.html
), leitet der Filter mich erneut zur Anmeldeseite um. Gibt es eine Methode, um 404 Fehler bei der Eingabe nicht existierender Seiten zu erhalten und umleiten an /login
on exists?