Java Servlet

Jakarta Servlet (ранее Java Servlet) - это программный компонент Java, который расширяет возможности сервера. Хотя сервлеты могут отвечать на многие типы запросов, они чаще всего реализуют веб-контейнеры для размещения веб-приложений на веб-серверах и, таким образом, квалифицируются как веб-API сервлетов на стороне сервера. Такие веб-сервлеты являются эквивалентом Java для других технологий динамического веб-контента, таких как PHP и ASP.NET.

Сервлет Jakarta обрабатывает или сохраняет класс Java в Jakarta EE, который соответствует API сервлета Jakarta, стандарту для реализации классов Java, отвечающих на запросы. Сервлеты могут в принципе взаимодействовать по любому протоколу клиент-сервер, но чаще всего они используются с HTTP. Таким образом, "сервлет" часто используется как сокращение для "HTTP-сервлета". Таким образом, разработчик программного обеспечения может использовать сервлет для добавления динамического содержимого на веб-сервер с помощью платформы Java. Сгенерированный контент обычно представляет собой HTML, но может быть и другими данными, такими как XML и, чаще, JSON. Сервлеты могут поддерживать состояние в переменных сеанса во многих серверных транзакциях с помощью файлов cookie HTTP или сопоставления URL-адресов.

Jakarta Servlet API в некоторой степени заменен двумя стандартными технологиями Java для веб-сервисов:

  • веб-службы Jakarta RESTful (JAX-RS 2.0), полезные для служб AJAX, JSON и REST
  • веб-службы Jakarta XML (JAX-WS), полезные для веб-служб SOAP

Чтобы развернуть и запустить сервлет, необходимо использовать веб-контейнер. Веб-контейнер (также известный как контейнер сервлетов) по сути является компонентом веб-сервера, который взаимодействует с сервлетами. Веб-контейнер отвечает за управление жизненным циклом сервлетов, сопоставление URL-адреса с конкретным сервлетом и обеспечение того, чтобы инициатор запроса URL имел правильные права доступа.

API сервлетов, содержащийся в иерархии пакетов Java javax.servlet, определяет ожидаемые взаимодействия веб-контейнера и сервлета.

Сервлет - это объект, который получает запрос и генерирует ответ на основе этого запроса. Базовый пакет сервлета определяет объекты Java для представления запросов и ответов сервлета, а также объекты для отражения параметров конфигурации сервлета и среды выполнения. Пакет javax.servlet.http определяет специфичные для HTTP подклассы общих элементов сервлета, включая объекты управления сеансом, которые отслеживают несколько запросов и ответов между веб-сервером и клиентом. Сервлеты могут быть упакованы в файл WAR как веб-приложение.

Сервлеты могут автоматически создаваться из Jakarta Server Pages (JSP) компилятором Jakarta Server Pages. Разница между сервлетами и JSP заключается в том, что сервлеты обычно встраивают HTML в код Java, тогда как JSP встраивают код Java в HTML. Хотя прямое использование сервлетов для генерации HTML (как показано в примере ниже) стало редкостью, веб-фреймворк MVC более высокого уровня в Jakarta EE (JSF) по-прежнему явно использует технологию сервлетов для обработки запросов/ответов низкого уровня через FacesServlet. Несколько более старое использование - использование сервлетов в сочетании с JSP в шаблоне, называемом "Model 2", который является разновидностью model–view–controller.

Java Servlet API был впервые публично объявлен на первой конференции JavaOne в мае 1996 года. Примерно через два месяца после объявлений на конференции первая публичная реализация была размещена на веб-сайте JavaSoft. Это была первая альфа-версия Java Web Server (JWS; тогда известная под кодовым названием Jeeves), которая в конечном итоге будет выпущена как продукт 5 июня 1997 г.

В своем блоге на java.net, ветеран Sun и руководитель GlassFish Джим Дрисколл подробно рассказывает об истории технологии сервлетов. Джеймс Гослинг впервые подумал о сервлетах на заре Java, но эта концепция не стала продуктом до декабря 1996 года, когда Sun выпустила JWS. Это было до того, как то, что сейчас является Jakarta EE, было преобразовано в спецификацию.

Спецификация Servlet1 была создана Павни Диванджи, когда она работала в Sun Microsystems, а версия 1.0 была завершена в июне 1997 года. Начиная с версии 2.2, спецификация разрабатывалась в рамках процесса сообщества Java.

Версия Servlet API
Выпущена
Спецификация
Платформа
Важные изменения
Jakarta Servlet 5.0.0 M1 12 июня 2020 г. 5.0 Jakarta EE 9 API перемещен из пакета javax.servlet в jakarta.servlet
Jakarta Servlet 4.0.3 13 августа 2019 г. 4.0 Jakarta EE 8 Переименовано с торговой марки "Java"
Java Servlet 4.0 Сентябрь 2017 г. JSR 369 Java EE 8 HTTP/2
Java Servlet 3.1 Май 2013 г. JSR 340 Java EE 7 Неблокирующий ввод-вывод, механизм обновления протокола HTTP (WebSocket)
Java Servlet 3.0 Декабрь 2009 г. JSR 315 Java EE 6, Java SE 6 Возможность подключения, простота разработки, асинхронный сервлет, безопасность, загрузка файлов
Java Servlet 2.5 Сентябрь 2005 г. JSR 154 Java EE 5, Java SE 5 Требуется Java SE 5, поддерживает аннотации
Java Servlet 2.4 Ноябрь 2003 г. JSR 154 J2EE 1.4, J2SE 1.3 web.xml использует схему XML
Java Servlet 2.3 Август 2001 г. JSR 53 J2EE 1.3, J2SE 1.2 Добавление Filter
Java Servlet 2.2 Август 1999 г. JSR 902, JSR 903 J2EE 1.2, J2SE 1.2 Становится частью J2EE, представлены независимые веб-приложения в файлах .war
Java Servlet 2.1 Ноябрь 1998 г. 2.1a Не определено Первая официальная спецификация, добавлены RequestDispatcher, ServletContext
Java Servlet 2.0 декабрь 1997 г. JDK 1.1 часть пакета Java Servlet Development Kit 2.0, апрель 1998 г.
Java Servlet 1.0 Декабрь 1996 г. Часть пакета разработки Java Servlet Development Kit (JSDK) 1.0 от июня 1997 г.

Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки