Esta es el arreglo más acertada que te podemos dar, sin embargo obsérvala detenidamente y analiza si se adapta a tu trabajo.
Solución:
En Filtro la respuesta es de ServletResponse
más bien que HttpServletResponse
. Por lo tanto, haga el elenco para HttpServletResponse
.
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendRedirect("/login.jsp");
Si usa una ruta de contexto:
httpResponse.sendRedirect(req.getContextPath() + "/login.jsp");
Tampoco olvides llamar return;
al final.
Estoy tratando de encontrar un método para redirigir mi solicitud del filtro a la página de inicio de sesión
No
solo invocas
chain.doFilter(request, response);
del filtro y el flujo normal seguirá adelante.
No sé cómo redirigir desde servlet
Puedes usar
response.sendRedirect(url);
para redirigir desde el servlet
Si también desea mantener el hash y obtener el parámetro, puede hacer algo como esto (llene redirectMap en filter init):
String uri = request.getRequestURI();
String[] uriParts = uri.split("[#?]");
String path = uriParts[0];
String rest = uri.substring(uriParts[0].length());
if(redirectMap.containsKey(path))
response.sendRedirect(redirectMap.get(path) + rest);
else
chain.doFilter(request, response);
Recuerda algo, que puedes optar por la opción de aclarar .