Il ciclo di vita della richiesta in base alle specifiche del servlet passa attraverso una catena di filtri prima di essere infine eseguito da un servlet.
Questo è abbastanza intuitivo quando si guarda la firma per il metodo doFilter nel Filter
interfaccia
doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
Cioè, nel filtro si ha accesso alla richiesta e la risposta e la catena. Il contratto prevede che tu, come implementatore, invochi lo chain
prima o dopo le operazioni che fai nel filtro, o non lo fai affatto se desideri non continuare l'esecuzione. La chiamata a chain.doFilter(...)
causerà il filtro successivo nella catena di filtri con una mappatura corrispondente all'URL richiesto da eseguire. Il membro finale della catena è il servlet il cui mapping corrisponde all'URL richiesto.
Tecnicamente, si può fare tutto in un filtro che si può fare in un servlet. Puoi costruire la tua applicazione per fare tutto il processo e il rendering in un filtro e avere un servlet vuoto che non fa nulla. La differenza principale è che se non c'è un servlet mappato su un determinato URL, il contenitore deve rispondere con un errore 404, quindi deve essere sempre presente un servlet associato a qualsiasi URL che si desidera pubblicare. Puoi anche avere un solo servlet mappato su un URL, ma puoi avere un numero qualsiasi di filtri.
hai letto di servlet e filtri di servlet?Qualsiasi risorsa che copra i filtri dovrebbe cancellare le cose per te – Bozho
@Bozho che ho fatto, ma suppongo di aver bisogno di http://www.coderanch.com/t/57899/Struts/Difference-between-servlet-struts per capire cosa non sapevo Non ho capito (...) – JVerstry