Un componente Web non è altro che un componente software che fornisce una richiesta HTTP in ingresso e fornisce una sorta di risposta (si spera valida).
La maggior parte, se non tutti, i framework Web Java sono basati sulla tecnologia dei servlet Java. Un servlet è un pezzo di codice persistente che riceve un'astrazione di una richiesta HTTP e fornisce una risposta HTTP. Dico "persistente" perché in genere è longevo su molte connessioni (diversamente dai vecchi processi transienti basati su CGI che erano circa 10-15 anni fa quando i servlet venivano immaginati).
Inoltre la specifica servlet include:
- Ganci per creare e distruggere servlet;
- Gestione sessione automatica incluso in ambienti cluster;
- L'output nella risposta utilizza la libreria di I/O Java standard;
- Le servlet hanno astrazioni abbastanza complete per la richiesta e la risposta;
- La configurazione a livello di applicazione (permanente) è supportata; e
- I dati possono essere ambiti in diversi modi (pagina, richiesta, sessione e applicazione).
Un JSP è un tipo speciale di markup che un contenitore Web con funzionalità JSP "compila" nel codice servlet.
Struts (1 & 2), Spring MVC, JSF, Seam, Wicket, Tapestry, ecc. Sono tutti i framework Web che vengono creati in base alle specifiche delle servlet. Ce ne sono letteralmente dozzine e sono tutti diversi.