Estoy tratando de encontrar un método para redirigir mi solicitud desde el filtro a la página de inicio de sesión, pero no sé cómo redireccionar desde servlet. Busqué pero lo que encuentro es el método sendRedirect()
. No puedo encontrar este método en mi respuesta en filtro. ¿Cuál es la causa? ¿Como puedo resolver esto?¿Cómo redirigir en un filtro de servlet?
Respuesta
En la respuesta del filtro es de ServletResponse
en lugar de HttpServletResponse
. Por lo tanto, haga el cast a HttpServletResponse
.
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.sendRedirect("/login.jsp");
Si se utiliza una ruta de contexto:
httpResponse.sendRedirect(req.getContextPath() + "/login.jsp");
También no se olvide de llamar return;
al final.
a tratar de comprobar su ServletResponse response
es un instanceof HttpServletResponse
así:
if (response instanceof HttpServletResponse) {
response.sendRedirect(....);
}
hay necesidad como método de filtro es 'public void doFilter (solicitud de HttpServletRequest, \t \t \t HttpServletResponse respuesta, cadena FilterChain) \t \t \t lanza IOException, ServletException { ' –
@ToKra Eso no es la firma del método, y los resultados en un error de compilación. –
Su objeto respuesta está declarada como una ServletResponse
. Para usar el método sendRedirect()
, debe convertirlo al HttpServletResponse
. Esta es una interfaz extendida que agrega métodos relacionados con el protocolo HTTP.
método de filtros ya tiene que 'pública doFilter vacío (solicitud de HttpServletRequest, \t \t \t HttpServletResponse respuesta, la cadena FilterChain) \t \t \t throws IOException, ServletException {' –
Estoy tratando de encontrar un método para redirigir mi solicitud de filtro a la página de acceso
¿No
Sólo invoca
chain.doFilter(request, response);
del filtro y el flujo normal continuará.
No sé cómo redirigir a partir servlet
Puede utilizar
response.sendRedirect(url);
para redirigir desde servlet
Es sin embargo útil si desea cancelar la solicitud debido a que el usuario no está conectado. – BalusC
'response' es del tipo' ServletResponse' y se debe convertir en 'HttpServletResponse'. Ejemplo: 'HttpServletResponse resp = (HttpServletResponse) de respuesta;' ' resp.sendRedirect ("nombre_plantilla || pathName");' – Andrius
Si también desea mantener hash y obtener parámetros, se puede hacer algo como esto (llene redirectMap en init filtro):
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);
}
- 1. redirigir jsp del servlet RequestDispatcher
- 2. cómo redirigir a Servlet URL dada
- 3. Filtro de servlet - No aplicar filtro a uno específico
- 4. ¿Diferencia entre el mapeo de servlet/servlet y el mapeo de filtro/filtro?
- 5. Filtro de servlet para todas las solicitudes
- 6. ¿Guardar y reutilizar una solicitud en un filtro de servlet?
- 7. ¿Cuál es la diferencia entre un filtro de servlet y un oyente de contexto de servlet?
- 8. Redirigir el servlet a Unicode-Domains
- 9. ¿Filtro de servlet para el almacenamiento en caché del navegador?
- 10. ¿Cómo utilizar un filtro de servlet en Java para cambiar una url de solicitud de servlet entrante?
- 11. web.xml 404 redirigir a servlet, cómo obtener el URI original?
- 12. ¿Cuál es el uso de filtro y cadena en servlet?
- 13. ¿Cómo introspedes web.xml de un servlet?
- 14. cómo cambiar el requestURL utilizando el filtro o servlet
- 15. Dando múltiples patrones de URL al filtro de servlet
- 16. Interceptor de primavera frente a filtro de servlet
- 17. Problema de redirección del filtro de servlet Java
- 18. Agregar un encabezado HTTP a la solicitud en un filtro de servlet
- 19. Cómo redirigir a un ancla en JSF?
- 20. ¿Cómo excluir/redirigir cierto patrón de URL en web.xml o en el módulo de servlet Guice?
- 21. Usando CDI de inyección en un servlet
- 22. cómo redirigir url a JSP en web.xml
- 23. cómo actualizar filtros para apoyar Servlet 3.0 servlet asíncrono
- 24. ¿Qué es un filtro Jersey?
- 25. ¿Asignación de filtro para todo a Struts2 además de un servlet?
- 26. ¿Dónde puedo encontrar un filtro de servlet Java que aplique expresiones regulares a la salida?
- 27. cómo aplicar el filtro de servlet solo para el método http post
- 28. threadlocal variables en un servlet
- 29. Cómo borrar un filtro - AngularJS
- 30. ¿Cómo implementar un filtro LowPass?
¿Hay una manera de resolver la ruta JSP utilizando un ViewResolver interior de un filtro? – FelipeKunzler
solo funciona si la solicitud proviene del navegador. Es una redirección externa. –