Лабораторная работа: Разработка Web–приложений с применением Java Servlet-технологии
Обеспечивает методы для обработки запросов и ответов HTTP
HttpSessionBindingEvent
Указывает на наличие или отсутствие связи блока прослушивания с сеансовым значением
HttpUtils
Обеспечивает методы утилит для сервлетов.
Класс HttpServlet. Работа с HTTP – запросами
Методы, которым метод service передает HTTP‑запросы:
· doGet, для работы с GET-, условными GET-, и HEAD‑запросами
· doPost, для работы с POST‑запросами
· doPut, для работы с PUT‑запросами
· doDelete, для работы с DELETE‑запросами
По умолчанию, эти методы возвращают ошибку BAD_REQUEST (400). Сервлет должен переопределить либо метод service, либо методы для работы с теми HTTP‑запросами, которые он поддерживает. Метод service, принадлежащий HttpServlet, также вызывает метод doOptions, когда сервлет получает OPTIONS‑запрос и метод doTrace, когда сервлет получает TRACE‑запрос. По умолчанию, реализация метода doOptions автоматически определяет какие HTTP‑опции поддерживаются и возвращает эту информацию. По умолчанию, реализация метода doTrace выдает ответ с сообщением, содержащим все заголовки, посланные в TRACE‑запросе. Эти методы, как правило, не переопределяются.
Практическая часть
Сервер Jakarta Tomcat
Перейдем к практической части лабораторной работы. Для ее выполнения вам понадобится сервер Jakarta Tomcat Server, который можно скачать на web‑узле http://java.sun.com. Установите дистрибутив. Объявите переменные среды JAVA_HOME = «<path>/jdk…» и CATALINA_HOME =»<path>\jakarta-tomcat…» (Control Panel / System / Advanced / Environment Variables). Теперь Вы имеет установленный tomcat. Если вам надо чтобы какие-то библиотеки подключались в CLASSPATH – положите их в каталог lib. По умолчанию сервер использует порт 8080. Для запуска Tomcat используйте bin\startup.bat, для остановки – bin\shutdown.bat. Корневым каталогом для Ваших докуметов будет webapps/ROOT/
Для классов – webapps/ROOT/WEB-INF/classes/. Например, класс myServlet расположенный в этом каталоге вызывается: http://localhost:8080/servlet/myServlet. Класс myPackage.myServlet (расположенный в пакете myPackage и соответственно в каталге webapps/ROOT/WEB-INF/classes/myPackage/) вызывается: http://localhost:8080/servlet/myPackage.myServlet
Примеры
Приведем несколько примеров сервлетов.
// HelloWorld.java выводит на браузер надпись HelloWorld
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloWorld extends HttpServlet {public void doGet (HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{response.setContentType (?text/html?);PrintWriter out = response.getWriter();out.println (?<html>?);out.println (?<body>?);out.println (?<head>?);out.println (?<title>Hello World!</title>?);out.println (?</head>?);out.println (?<body>?);out.println (?<h1>Hello World!</h1>?);out.println (?</body>?);out.println (?</html>?);}}Как вы видите, сервлет обрабатывает Get – запрос браузера.
response.setContentType (?text/html?); ? ????????????? ??? ??????PrintWriter out = response.getWriter(); ? ????????? ?????, ??? ?????? ???????? ?????????? ?????? ???????? ?????? ?? ???????.Приведем пример сервлета, обрабатывающего входные параметры.
// код HTML‑страницы, вызывающей сервлет
<form action= «RequestParamExample » method=POST>
First Name:
<input type=text size=20 name=firstname>
<br>
Last Name:
<input type=text size=20 name=lastname>
<br>
<input type=submit>
</form>