Sto lavorando al tutorial sulla servlet Java EE e ho provato il mood example. Ho notato che doFilter viene chiamato due volte, una volta che la chiamata servlet è nella catena e la seconda volta non lo è.doFilter ha chiamato due volte, comportamento previsto?
Ho aggiunto alcuni printlns in TimeOfDayFilter.java e in MoodServlet.java per mostrare questo.
TimeOfDayFilter.java:
...
System.out.println("TimeOfDay before"); //added
chain.doFilter(req, res);
System.out.println("TimeOfDay after"); //added
...
MoodServlet.java:
...
response.setContentType("text/html;charset=UTF-8");
System.out.println("MoodServlet"); //added
PrintWriter out = response.getWriter();
...
Il risultato dal server GlassFish (3.1) Finestra quando si chiama il servlet è il seguente:
INFO: mood was successfully deployed in 406 milliseconds.
INFO: TimeOfDay before
INFO: MoodServlet
INFO: TimeOfDay after
INFO: TimeOfDay before
INFO: TimeOfDay after
È questo comportamento previsto? In tal caso, qual è la ragione della chiamata in più?
Basta fare 'System.out.println (request.getRequestURI())' per sapere quale richiesta ha colpito esattamente il filtro.E, premere F12 nel browser per tenere traccia di tutte le richieste HTTP licenziate. – BalusC