Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
206
Добавлен:
17.04.2018
Размер:
685 Кб
Скачать
☆

ИП. Сервлеты и JSP. Структура приложения

МИЭТ, 2017

Файлы JSPs и статические файлы могут быть расположены где угодно в соответствии с корневой директорией, но местоположение будет отражено в URL, используемом, чтобы вызвать их.

Например, если index.html страница расположена в websample\miet\ каталоге, URL должен быть похож на:

http://localhost:8080/websample/miet/index.html

ИП. Сервлеты и JSP. Структура приложения

МИЭТ, 2017

ИП. Сервлеты и JSP. Структура сервлетов

МИЭТ, 2017

Необходимые интерфейсы работы сервлета находятся в пакетах: javax.servlet, javax.servlet.http

Пакет javax.servlet обеспечивает интерфейсы и классы для написания сервлетов в нем определяется интерфейс Servlet. Все сервлеты реализуют данный интерфейс.

Для работы по протоклу HTTP используют расширение - HttpServlet.

Интерфейс Servlet объявляет, но не реализует методы, которые управляют сервлетом и его взаимодействием с клиентами.

ИП. Сервлеты и JSP. Структура сервлетов

МИЭТ, 2017

ИП. Сервлеты и JSP. Стуктура сервлетов

МИЭТ, 2017

Принимая запрос от клиента, сервлет получает два объекта:

ServletRequest, который инкапсулирует связь клиента с сервером.

ServletResponse, который инкапсулирует обратную связь сервлета с клиентом.

Для протокола HTTP эти объекты соответственно расширяются в: Объект HttpServletRequest, который инкапсулирует данные от клиента Объект HttpServletResponse, который инкапсулирует ответ к клиенту

ИП. Сервлеты и JSP. Работа сервлетов. Жизненный цикл

МИЭТ, 2017

Сервлеты выполняются на платформе Web-сервера как часть того же процесса, что и сам Web-сервер. Web-сервер отвечает за инициализацию, вызов и уничтожение каждого экземпляра сервлета. Web-сервер взаимодействует с сервлетом через простой интерфейс: javax.servlet.Servlet.

Интерфейс javax.servlet.Servlet состоит из трех главных методов:

init()

Выполняет подготовительную работу по настройке окружения сервлета перед выполнение клиентского запроса. Например, открытие файлов или установку соединений с их серверами. Завершается перед любым другим обращением к сервлету

service()

читает запрос и формирует ответное сообщение при помощи своих двух аргументов

— объектов: ServletRequest и ServletResponse

destroy()

вызывается для освобождения всех ресурсов (например, открытые файлы и соединения с базой данных) перед выгрузкой сервлета. Может быть вызван по событию, либо по таймауту (сессии)

и двух вспомогательных методов:

getServletConfig()

- обеспечивает доступ к конфигурации сервера

GetServletInfo()

- возвращает информацию о сервлете: автор, версия и т.д.

ИП. Сервлеты и JSP. Работа сервлетов.

МИЭТ, 2017

Вклассе HTTPServlet определен ряд методы doGet() и doPost(), которые переопределяются в сервлете и обеспечивают получение данных от клиента по соответствующему методу

package servlets;

import java.io.IOException; import java.io.PrintWriter;

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

public class HelloMiet extends HttpServlet { @Override

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter(); response.setContentType("text/html"); out.println("<HTML><HEAD><TITLE>"); out.println("ServletTest"); out.println(""</TITLE></HEAD><BODY>"); out.println("Привет! МИЭТ:)"); out.println("</BODY></HTML>"); out.close();

}

}

ИП. Сервлеты и JSP. Работа сервлетов.

МИЭТ, 2017

Как видно в примере класс HelloMiet расширяет класс HTTPServlet и переопределяет его метод doGet().

Метод doGet в примере использует Writer из объекта HttpServletResponse для возвращения клиенту текстовых данных. Прежде чем получить доступ к writer, пример устанавливает заголовок content-type. В конце метода doGet, после того как был отправлен запрос, Writer закрывается.

При каждом вызове методы doGet и doPost класса HttpServlet принимают в качестве параметра объект, который реализует интерфейс HttpServletRequest. Web-сервер, который исполняет сервлет, создает объект HttpServletRequest и передает его методу service сервлета (который в свою очередь передает его методу doGet или doPost). Данный объект содержит запрос, поступивший от клиента.

Как видно вывод с множеством out.println достаточно неудобен для написания т. к. вывод сложных ответов может потребовать сотни и тысячи раз писать out.println.

ИП. Сервлеты и JSP. Работа сервлетов

МИЭТ, 2017

Ключевые методы объекта HttpServletRequest

Метод

Описание

String

Получение из запроса значения параметра. Наименование

getParameter(String name)

параметра определено значением name.

Enumeration

Получение из запроса имен всех параметров.

getParameterNames()

 

String[ ]

Для параметра с несколькими значениями данный метод

getParameterValues(String name)

возвращает строковый массив.

Cookie[ ]

Получение массива объектов Cookie, сохраненных на

getCookies ()

компьютере клиента. Cookie могут быть использованы для

 

уникальной идентификации клиента сервером.

HttpSession

Возвращает объект HttpSession текущего сеанса клиента.

getSession(boolean create)

Если параметр create равен true и объект HttpSession не

 

существует, то создается новый объект HttpSession.

ИП. Сервлеты и JSP. Работа сервлетов

МИЭТ, 2017

Ключевые методы объекта HttpServletResponse

Метод

Описание

void addCookie (Cookie cookie)

Метод используется для добавления Cookie в

 

заголовок ответа клинту. Установленный

 

максимальный возвраст Cookie, а также разрешение

 

клиентом хранения Cookie определяют, будут ли

 

Cookies сохранены на клиенте и время их хранения.

ServletOutputStream

Получение бинарного потока вывода для

getOutputStream()

отправления бинарных данных клиенту.

PrintWriter getWriter

Получение символьного потока вывода для

 

отправления текстовых данных клиенту.

void setContentType(String

Определение MIME-типа ответа браузеру. MIME-тип

type)

помогает браузеру определить, как отображать

 

данные. Например, MIME-тип "text/html" указывает,

 

что ответ является HTML-документом, поэтому

 

браузер отображает HTML-страницу.

Соседние файлы в папке Интернет технологии