logo search
[КОМП СИСТЕМЫ] / KS1

Сервлет-технология java

Серверные программы написанные на JAVA выполняемые под управлением JAVA Web-сервера называются сервлетами. Для разработки сервлетов фирма Sun создала большой набор интерфейсов и классов получивших название ServletAPI(Application Programming Interface).

Основные из них находятся в пакетах javax.servlet и javax.servlet.http. При этом наиболее важным из них является интерфейс Servlet реализован классом HTTPServlet который учитывает работу с протоколом http.

В этом классе метод processRequest() не реализован (данный метод характерен для среды NetBeans). Поэтому чтобы создать свой сервлет необходимо наследовать класс HttpServlet реализовав в расширении метод proсessRequest() (при создании сервлета вне среды NetBeans вместо метода proсessRequest() используют метод service()).

В сервлет API для работы по протоколу http используют интерфейсы HTTPServletRequest и HTTPServletResponse. Web-контейнер реализует эти интерфейсы. При этом он производит синтаксический разбор http-запроса и формирует динамический http-ответ.

В примере HelloServlet.java эти объекты названы req и res соответственно.

Значение параметров запроса Servlet получает из объекта req в виде строки, используя имена параметров переданные html-формы. Например:

String name=req.getParametеr(“name”);

Чтобы использовать особенности методов передачи информации Get, Post протокола http, в классе HTTPServlet используются методы doGet(), doPost().

Динамический html передается через символьный выходной поток с использованием объекта типа HTTPServletResponse.

Для этого он использует метод getWriter(), который возвращает объект PrinterWriter. Например:

PrinterWriter out=res.getWriter();

Тип содержимого ответа и его кодировку устанавливает метод SetContextType().Например:

res setContextType(“text/html;charset=Windows 1251”);

Метод out.println()используется для вывода строк кода html-документа ответа в символьный поток. Этот документ отображается браузером клиента и ни чем не отличается от обычных статических Web-страниц хранящаяся на сервере.