ho bisogno di avanti la mia richiesta (ad una jsp, ma non credo che sia la materia) da un http.Filter se l'URI della richiesta originale passare un po 'di convalida che il mio filtro piste.richiesta avanti da un filtro
ho trovato questo page that faced similar task
Ancora ho bisogno di capire quanto segue:
Come posso ottenere ServletContext a
doFilter()
metodo (per chiamare avanti API)getServletContext()
non è recignizedDevo
call chain.doFilter()
prima dell'avanzamento, dopo l'inoltro o non del tutto? Inoltre devo chiamarechain.doFilter()
se la mia convalida è passata o solo se fallisce (perché in questo caso non continuerò ad inoltrare la mia pagina)?
Questa domanda in realtà continuano this thread, per essere più evidente, il codice potrebbe essere qualcosa del tipo:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = ((HttpServletRequest)request);
String requestURI = httpServletRequest.getRequestURI();
String contextPath = httpServletRequest.getContextPath();
if (<this is my implementation of the validation of this filter>){
getServletContext().getRequestDispatcher(
"MySpecific.jsp").forward(request,response);
}
}
chain.doFilter(request,response);
}
entrambe le risposte andavano bene. L'altro era il primo. – Spiderman
Memorizza FilterConfig durante l'inizializzazione e chiama FilterConfig.getServletContext() Questo è il mio metodo preferito in quanto non ha una sessione esplicita: – Gurnard