Сервлет
Java Servlet API — стандартизований API для створення динамічного контенту до веб-сервера, використовуючи платформу Java. Сервлети — аналог технологій PHP, CGI і ASP.NET. Сервлет може зберігати інформацію між багатьма транзакціями, використовуючи HTTP кукіз, сесії або через редагування URL.
Servlet API, що міститься в пакеті javax.servlet, описує взаємодію веб-контейнера і сервлета. Вебконтейнер — це компонент веб-сервера, що створений для взаємодії з сервлетами. Він відповідає за управління життєвим циклом сервлетів, перетворення URL у певний сервлет та забезпечення того, щоб клієнт, який зробив URL запит, мав відповідні права доступу.
Стандарти та специфікації
Сервлети, інтерфейси та базові класи, протоколи роботи з ними, робоче оточення, описуються у відповідних специфікаціях некомерційної організації Eclipse Foundation.
Для полегшення розробки HTTP сервлетів, у специфікації описано абстрактний клас HttpServlet, від якого розробникам пропонується успадковувати свої сервлети.
Схема роботи та застосування
- Клієнт (наприклад, Вебоглядач), відвідує веб-сторінку та надсилає HTTP запит на сервер.
- Web-сервер отримує запит та передає його контейнеру сервлетів. Контейнер сервлетів може виконуватись в тому ж самому процесі, що і веб-сервер, в окремому процесі на тій же системі, що і веб-сервер, або взагалі в окремому процесі на іншій системі.
- Контейнер сервлетів з'ясовує який сервлет слід викликати, виходячи з інформації про конфігурацію утримуваних сервлетів, та викликає його, передаючи як параметри об'єктні представлення запиту та відповіді.
- Сервлет використовує об'єкт запиту для отримання інформації про віддаленого користувача, параметри HTTP запиту тощо. Сервлет виконує запрограмовані в ньому дії та надсилає результати роботи через об'єкт відповіді.
- Після того, як сервлет припиняє обробку запиту, контейнер сервлетів перевіряє коректність відправки відповіді, та повертає управління до головного веб-сервера.
Сервлети, також, використовуються в технології JSP. Шаблони сторінок транслюються у вихідні тексти Java-класів успадкованих від стандартних класів сервлетів. Java-компілятор компілює ці вихідні тексти в Java-байт коди. Отримані скомпільовані класи можуть використовуватись в сервлет-контейнері. Як правило, сервлет-контейнери виконують усі ці допоміжні дії автоматично.
Див. також
- Сервлет контейнер
- JSP
- Hyper Text Transfer Protocol
- Uniform Resource Identifier
- Uniform Resource Locators
- MIME
- CGI
Посилання
- Java Servlet Technology Сторінка присвячена сервлетам на сайті Sun.
- Java 2 Platform Enterprise Edition Сторінка присвячена серверним застосуванням Java на сайті Sun.