Сервлет

Матеріал з Вікіпедії — вільної енциклопедії.

СéрвлетЯва компонента, керована сервлет-контейнером, яка застосовується для динамічного генерування даних. Кожен сервлет, як і більшість інших Ява-компонент, описується в окремому класі, який реалізує інтерфейс Servlet.

Сервлети завантажуються і виконуються в Web-серверах які підтримують роботу з сервлетами. Взаємодія сервлетів з клієнтами реалізована згідно із парадигмою запит-відповідь.

Зміст

[ред.] Стандарти та специфікації

Сервлети, інтерфейси та базові класи, протоколи роботи з ними, робоче оточення, описуються у відповідних специфікаціях компанії Сан.

Для полегшення розробки HTTP сервлетів, в специфікації описано абстрактний клас HttpServlet, від якого розробникам пропонується успадковувати свої сервлети.

[ред.] Схема роботи та застосування

  1. Клієнт (наприклад, Веб-оглядач), відвідує веб-сторінку та надсилає HTTP запит на сервер.
  2. Web-сервер отримує запит та передає його контейнеру сервлетів. Контейнер сервлетів може виконуватись в тому ж самому процесі, що і веб-сервер, в окремому процесі на тій же системі, що і веб-сервер, або взагалі в окремому процесі на іншій системі.
  3. Контейнер сервлетів з'ясовує який сервлет слід викликати, виходячи із інформації про конфігурацію утримуваних сервлетів, та викликає його передаючи в якості параметрів об'єктні представлення запиту та відповіді.
  4. Сервлет використовує об'єкт запиту для отримання інформації про віддаленого користувача, параметри HTTP запиту, тощо. Сервлет виконує запрограмовані в ньому дії та надсилає результати роботи через об'єкт відповіді.
  5. Після того, як сервлет припиняє обробку запиту, контейнер сервлетів перевіряє коректність відправки відповіді, та повертає управління до головного веб-сервера.

Сервлети, також, використовуються в технології JSP. Шаблони сторінок транслюються в вихідні тексти Ява-класів успадкованих від стандартних класів сервлетів. Ява-компілятор компілює ці вихідні тексти в ява-байт коди. Отримані зкомпільовані класи можуть використовуватись в сервлет-контейнері. Як правило, сервлет-контейнери виконують всі ці допоміжні дії автоматично.

[ред.] Джерела інформації

  • Java™ Servlet Specification, Version 2.4 [1].

[ред.] Дивіться також

[ред.] Зовнішні посилання