Чтение параметров сервлета и формирование ответа клиенту
Класс ServletRequest включает методы, позволяющие читать имена и значения параметров, которые включены в запрос клиента. String getParameter (String pname) – возвращает значение параметра с именем pname. Enumeration getParameterNames() – возвращает перечисление имен параметров этого запроса. String[] getParameterValues() – возвращает перечисление значений параметров этого запроса. Чтение параметров инициализации Параметры инициализации могут использоваться для открытия файлов, создания подключений базы данных или выполнения других действий. К этой информации можно обращаться двумя способами: · Метод init(), объявленный интерфейсом Servlet, принимает объект ServletConfig в качестве его параметра; · Метод getServletConfig(), объявленный интерфейсом Servlet, возвращает объект ServletConfig. Манера, в которой параметры инициализации предоставляются сервлету, зависит от сервера. Пакет javax.servlet.http
Пакет javax.servlet содержит ряд интерфейсов и классов, облегчающих построение сервлетов, которые работают с HTTP – запросами и ответами.
Класс 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> // RequestParamExample.java получает входные параметры и выводит на браузер их значения import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class RequestParamExample extends HttpServlet {public void doPost (HttpServletRequest request, HttpServletResponse res)throws IOException, ServletException{Enumeration e = request.getParameterNames();PrintWriter out = res.getWriter ();while (e.hasMoreElements()) {String name = (String) e.nextElement();String value = request.getParameter(name);out.println (name + «=» + value);}}}Здесь мы из вызывающей страницы получаем параметры firstname и lastname. В сервлете: Enumeration e = request.getParameterNames(); – получаем имена всех параметров запроса, затем открываем поток записи н браузер, и до тех пор, пока множество имен не исчерпано, получаем имя параметраString name = (String) e.nextElement();Получаем, значение параметра, зная имяString value = request.getParameter(name);Выводим его на брузерout.println (name + «=» + value);Приведем пример работы с сессиями:import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class SessionExample extends HttpServlet {public void doGet (HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{response.setContentType («text/html»);PrintWriter out = response.getWriter();HttpSession session = request.getSession(true); // добавить атрибут в сессиюString dataName = request.getParameter («dataName»);String dataValue = request.getParameter («dataValue»);session.setAttribute (dataName, dataValue); // вывести значения атрибутов сессииEnumeration e = session.getAttributeNames();while (e.hasMoreElements()) {String name = (String) e.nextElement();String value = session.getAttribute(name).toString();out.println (name + «=» + value);}}}Сервлет обрабатывает Get‑запрос, извлекает значение параметраString dataName = request.getParameter («dataName»);String dataValue = request.getParameter («dataValue»);И добавляет его в сессиюsession.setAttribute (dataName, dataValue);Затем получаем имена всех атрибутов сессии:Enumeration e = session.getAttributeNames();И пишем на браузер их значенияString value = session.getAttribute(name).toString();out.println (name + «=» + value);
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (133)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |