Сервлеты. Обработка запросов и ответов HTTP.
При разработке сервлетов в качестве базового класса в большинстве случаев используется не интерфейс Servlet, а классHttpServlet, отвечающий за обработку запросов HTTP. Этот класс уже имеет реализованный метод
service().
Метод service() класса HttpServlet служит диспетчером для других методов, каждый из которых обрабатывает методы доступа к ресурсам. В спецификации HTTP определены следующие методы: GET, HEAD, POST, PUT, DELETE, OPTIONS и TRACE. Наиболее часто употребляются методы GET и POST, с помощью которых на сервер передаются запросы, а также параметры для их выполнения.
При использовании метода GET параметры передаются как часть URL, значения могут выбираться из полей формы или передаваться непосредственно через URL. При этом запросы кэшируются и имеют ограничения на размер. При использовании метода POST (method=POST) параметры (поля формы) передаются в содержимом HTTP-запроса и упакованы согласно полю заголовка Content-Type.
По умолчанию в формате:
<имя>=<значение>&<имя>=<значение>&...
Однако форматы упаковки параметров могут быть самые разные, например в случае передачи файлов с использованием формы
enctype="multipart/form-data".
В задачу метода service() класса HttpServlet входит анализ полученного через запрос метода доступа к ресурсам и вызов метода, имя которого сходно с названием метода доступа к ресурсам, но перед именем добавляется префикс do: doGet() или doPost(). Кроме этих методов, могут использоваться методы doHead(), doPut(), doDelete(), doOptions() и doTrace(). Разработчик должен переопределить нужный метод, разместив в нем функциональную логику.
|
|
Практика включения HTML-кода в код сервлета не считается хорошей, так как эти действия “уводят” сервлет от его основной роли – контроллера приложения. Это приводит к разрастанию размеров сервлета, которое на определенном этапе становится неконтролируемым и реализует вследствие этого анти-шаблон “Волшебный сервлет”. Сервлет должен использоваться только для реализации бизнес-логики приложения и обязан быть отделен как от непосредственного формирования ответа на запрос, так и от данных, необходимых для этого. Обычно для формирования ответа на запрос применяются возможности JSP, JSPX или JSF. Признаки наличия анти-шаблонов все же будут встречаться ниже, но это отступление сделано только с точки зрения компактности примеров.
Сервлет является компонентом Web-приложения, который будет называться FirstProject и размещен в папке /WEB-INF/сlasses проекта.
Дата добавления: 2015-12-17; просмотров: 23; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!