Comment faire pour rediriger dans un filtre de servlet?
J'essaie de trouver une méthode pour rediriger ma demande de filtre à la page de connexion mais je ne sais pas comment rediriger servlet. J'ai cherché mais ce que je trouve est sendRedirect()
méthode. Je ne trouve pas cette méthode sur ma réponse obect dans le filtre. Quelle en est la cause? Comment puis-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Dans le Filtre de la réponse est de
ServletResponse
plutôt queHttpServletResponse
.Donc à faire le casting pourHttpServletResponse
.Si vous utilisez un chemin de contexte:
Aussi ne pas oublier d'appeler
return;
à la fin.Ne pas
Que vous venez invoquer
de filtre et le débit normal aller de l'avant.
Vous pouvez utiliser
de redirection à partir de servlet
response
est de typeServletResponse
et il devrait être utilisé pourHttpServletResponse
. Exemple :HttpServletResponse resp = (HttpServletResponse) response;
resp.sendRedirect("templateName || pathName");
Si vous voulez aussi garder de hachage et de paramètre get, vous pouvez faire quelque chose comme ceci (à remplir redirectMap au filtre init):
Essayer et vérifier de votre
ServletResponse response
est uninstanceof HttpServletResponse
comme suit:public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
Votre réponse objet est déclaré comme un
ServletResponse
. Pour utiliser lesendRedirect()
méthode, vous avez à jeter auxHttpServletResponse
. C'est une extension de l'interface qui ajoute des méthodes liées au protocole HTTP.public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {