Un servlet è un piccolo programma che viene eseguito su un server. Il termine è stato coniato nel contesto dell'applet Java, un piccolo programma che viene inviato come file separato insieme a una pagina Web (HTML). Le applet Java, solitamente concepite per l'esecuzione su un client, possono comportare servizi quali l'esecuzione di un calcolo per un utente o il posizionamento di un'immagine in base all'interazione dell'utente.
Alcuni programmi, spesso quelli che accedono ai database in base all'input dell'utente, devono essere sul server. In genere, questi sono stati implementati utilizzando un'applicazione CGI (Common Gateway Interface). Tuttavia, con un Java in esecuzione nel server, tali programmi possono essere implementati con il linguaggio di programmazione Java. Il vantaggio di un servlet Java su server con molto traffico è che possono essere eseguiti più rapidamente delle applicazioni CGI. Piuttosto che causare la creazione di un processo di programma separato, ogni richiesta utente viene richiamata come thread in un singolo processo daemon, il che significa che la quantità di overhead di sistema per ciascuna richiesta è minima.
Invece di un URL che designa il nome di un'applicazione CGI (in una sottodirectory "cgi-bin"), una richiesta in un modulo su una pagina HTML Web che si traduce in un servlet Java che viene chiamato chiamerebbe un URL simile a questo:
http://www.whatis.com:8080/servlet/gotoUrl?http://www.someplace.com
Il numero di porta "8080" nell'URL indica che la richiesta è destinata direttamente al server Web stesso. Il "servlet" indica al server Web che è stato richiesto un servlet.
I moduli aggiuntivi consentono ai servlet Java di essere eseguiti in Netscape Enterprise, Microsoft Internet Information Server (IIS) e server Apache.