Сервлет – это web-компонент, расположенный в серверной части web-приложения. Сервлеты выполняются в специальной среде – контейнере сервлетов, который является составной частью web-контейнера.
Среда, в которой может работать web-контейнер определяется его спецификацией – обычно это web-сервер или сервер приложений.
Сервлет не зависит от программно-аппаратной платформы на которой работает webконтейнер. Более того, сервлет переносим на уровне бинарных файлов между разными web-контейнерами, если эти контейнеры реализуют одну и туже версию спецификации контейнера сервлетов.
Основное назначение сервлетов – динамическое формирование содержимого ответов на запросы клиентского приложения. В общем случае сервлеты не зависят от протокола связи, но наиболее часто они применяются для обработки http-запросов.
С точки зрения программиста сервлет это класс Java, реализующий интерфейс Servlet. Для обработки http-запросов используют класс HttpServlet, реализующий методы интерфейса Servlet и предоставляющий свои методы, предназначенные для обработки http-запросов и формирование http-ответов.
Объекты классов, используемые сервлетом для приема запросов и формирования ответов создаются контейнером, поэтому классы этих объектов (HttpServlet, HttpServletRequest, HttpServletResponse и др.) находятся в составе API webконтейнеров.
Чаще всего сервлеты используют для обработки http-запросов типа GET и POST. Сервлет может принимать эти запросы, обрабатывать параметры, выполнять необходимые вычисления и формировать ответ. Кроме того, сам сервлет может тоже формировать http-запросы, а также получать и обрабатывать http-ответы.
Сервлет является простым и удобным типом компоненты web-приложения, позволяющим гибко организовать взаимодействие его серверной и клиенткой частей. Использование сервлета никак не связано с его местом расположения в сети – для обращения к нему необходимо знать только его URL и перечень принимаемых параметров. Обработку его ответа, можно осуществлять любым программным средством, поддерживающим протокол HTTP.
Переопределение и переадресация запросов. Формирование get и post запросов в сервлете.