Сервлет
Сервлет является Java-программой, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.
Сервлеты должны реализовывать Servlet
интерфейс, который определяет методы жизненного цикла.
Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов. Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы.
Пакеты javax.servlet
и javax.servlet.http
обеспечивают интерфейсы и классы для создания сервлетов.
История
Первая спецификация сервлетов была создана в Sun Microsystems (версия 1.0 была закончена в июне 1997). Начиная с версии 2.3, спецификация сервлетов разрабатывалась под руководством Java Community Process. Стандарт JSR 53 определял как Servlet 2.3, так и спецификацию JavaServer Page 1.2. JSR 154 включает в себя спецификации Servlet 2.4 и текущую на данный момент 2.5.
Servlet API версия | Релиз | Платформа | Важнейшие изменения |
---|---|---|---|
Servlet 2.5 | Сентябрь 2005 | JavaEE 5 , J2SE 5.0 | Требует J2SE 5.0, поддержка annotations
|
Servlet 2.4 | Ноябрь 2003 | J2EE 1.4, J2SE 1.3 | web.xml использует XML Schema |
Servlet 2.3 | Август 2001 | J2EE 1.3, J2SE 1.2 | Появление Filter
|
Servlet 2.2 | Август 1999 | J2EE 1.2, J2SE 1.2 | Становится частью J2EE, предлагает независимые веб-приложения в .war файлах |
Servlet 2.1 | Ноябрь 1998 | не оговорено | Первая официальная спецификация, добавлены RequestDispatcher , ServletContext
|
Servlet 2.0 | JDK 1.1 | Часть Java Servlet Development Kit 2.0 | |
Servlet 1.0 | Июнь 1997 |
Жизненный цикл Сервлета
Жизненный цикл сервлета состоит из следующих шагов:
- В случае отсутствия сервлета в контейнере.
- Класс сервлета загружается контейнером.
- Контейнер создает экземпляр класса сервлета.
- Контейнер вызывает метод
init()
. Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл методinit()
вызывается только однажды.
- Обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод
service()
для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса. Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса. - В случае если контейнеру необходимо удалить сервлет, он вызывает метод
destroy()
, который снимает сервлет из эксплуатации. Подобно методуinit()
, этот метод тоже вызывается единожды за весь цикл сервлета.
См. также
Серверы
Ссылки
- Java Servlet Technology (англ.) - Официальная домашняя страница
- Введение в технологию Java Servlet
- Сервлеты
- Нововведения в стандарте Servlet API 2.5
Java |
||
---|---|---|
Платформы | Java Card · Java ME · Java SE · Java EE | Файл:Wave.svg |
Технологии Sun | Java · Java Development Kit · OpenJDK · WTK · Java Virtual Machine · JavaFX · JAXP | |
Основные сторонние технологии | GNU Classpath · GNU компилятор для Java · Kaffe · TopLink · Apache Harmony · Apache Struts · Spring Framework · Hibernate · JBoss · Processing · Dozer · AspectJ | |
История | История версий Java · Критика Java · Java Community Process · Sun Microsystems · Свободные реализации Java | |
Свойства языка | Байткод · Синтаксис · Апплеты · Сервлеты · Мидлеты · JavaServer Pages · Web Start · Enterprise JavaBeans | |
Скриптовые языки | Java Tcl · Jython · JRuby · BeanShell · Groovy · Judoscript · Sleep · Bean Scripting Framework · Yoix · Rhino | |
Конференции Java | JavaOne |
ar:سيرفلت bg:Сървлет ca:Miniaplicació de servidor da:Servlet de:Servlet en:Java Servlet eo:Servleto es:Java Servlet fr:Servlet he:Java Servlet hu:Servlet it:Servlet ja:Java Servlet ko:자바 서블릿 lt:Java Servlet mn:Servlet nl:Servlet pl:Serwlet pt:Servlet sr:Servlet sv:Java Servlet uk:Сервлет vi:Servlet zh:Java Servlet
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....