Как ни полезны аплеты Java, они решают лишь половину задачи в архитектуре “клиент-сервер”. Вскоре после появления языка Java стало очевидно, что он может пригодиться и на серверах. В результате появились сервлеты. Сервлет — это небольшая прикладная программа Java, выполняемая на сервере. Подобно тому как аплеты динамически расширяют функциональные возможности веб-браузера, сервлеты динамически расширяют функциональные возможности веб-сервера. Таким образом, с появлением сервлетов язык Java охватил обе стороны соединения “клиент-сервер”.
Сервлеты служат для создания динамически генерируемого содержимого, которое затем предоставляется клиенту. Например, интерактивный склад может использовать сервлет для поиска стоимости товара в базе данных. Затем информация о цене используется для динамического создания веб-страницы, отправляемой браузеру. И хотя динамически создаваемое содержимое доступно и с помощью таких механизмов, как CGI (Common Gateway Interface — интерфейс общего шлюза), применение сервлетов дает ряд преимуществ, в том числе повышение производительности.
Подобно всем программам на Java, сервлеты компилируются в байт-код и выполняются виртуальной машиной JVM, поэтому они в высшей степени переносимы. Следовательно, один и тот же сервлет может применяться в различных серверных средах. Единственным необходимым условием для этого является поддержка на сервере виртуальной машины JVM и контейнера для сервлета.