Een servlet is een in Java geschreven programma dat binnen een J2EE-webcontainer op een server draait. De servlet maakt hierbij gebruik van een aantal diensten die de webcontainer biedt, zoals het afhandelen van de communicatie met de client. Deze communicatie vindt meestal plaats via HTTP. Servlets kunnen worden gebruikt om bijvoorbeeld invulpagina's op een website te verwerken, grafieken te maken of de toegang tot een website te regelen.

Versie 2.3 van de servletspecificatie heeft filters geïntroduceerd. Een filter is een speciaal soort servlet en werkt in een zogeheten filterchain. Een filterchain bestaat uit 1 of meer filters die de aanvragen voor een bepaalde URL verwerken. Elk filter beslist of de aanvraag voor een bepaalde URL verder verwerkt moet worden door de filterchain. Op deze manier is het mogelijk om functionaliteit die voor alle clientrequests gebruikt wordt op een eenduidige manier te programmeren en configureren. Filters worden vaak gebruikt voor compressie, encryptie en logging. Filters zijn een implementatie van het design pattern decorator.

De tegenhanger van een servlet is een applet, dat is een (klein) Java-programma dat in een browser draait. Er zijn meer gangbare programmeertalen die op een webserver kunnen worden gedraaid. Dit zijn o.a. Perl, PHP, ASP en Ruby.