18117

Технологія Java Servlet

Лекция

Информатика, кибернетика и программирование

Тема 2: Технологія Java Servlet Сервлет Javaобєкт що працює всередині спеціальної програми сервлетконтейнера і застосовується для динамічного генерування даних. Кожен сервлет описується в окремому класі який реалізує інтерфейс Servlet. В більшості сервлети використовуються...

Украинкский

2013-07-06

52.5 KB

5 чел.

Тема 2: Технологія Java Servlet

СервлетJava-об’єкт, що працює всередині спеціальної програми сервлет-контейнера і застосовується для динамічного генерування даних. Кожен сервлет описується в окремому класі, який реалізує інтерфейс Servlet. В більшості сервлети використовуються для динамічного генерування Web-сторінок. В цьому випадку сервлет-контейнер повинен бути зв’язаний з Web-сервером (або можна сказати, Web-сервер повинен підтримувати роботу з сервлетами). Взаємодія сервлетів з клієнтами реалізована згідно із парадигмою запит-відповідь. Сервлети, що генерують Web-сторінки, працюють за протоколом HTTP (є HTTP-сервлетами). Для таких сервлетів існує абстрактний клас HttpServlet, від якого розробникам пропонується успадковувати свої сервлети. Такі сервлети є альтернативами таких технологій, як CGI, ISAPI, PHP, Perl тощо.

Першим web-сервером, який підтримував сервлети, став випущений компанією JavaSoft сервер Jeeves, який потім назвали Java Web Server (JWS). Існує велика кількість інших web-серверів з підтримкою сервлетів. Для стандартних web-серверів, таких, як Netscape, IIS, Apache, JavaSoft пропонується Java Servlet Developers Kit, що дозволяє завантажувати сервлети на більшості зі стандартних серверів. В даний час широко використовується web-сервер з сервлет-контейнером Apache Tomcat.

Схема роботи сервлету:

  1.  Клієнт (наприклад, Web-броузер), при виконанні користувачем певних дій на web-сторінці, надсилає HTTP запит на web-сервер.
  2.  Web-сервер отримує запит і, визначивши, що запит іде до сервлета, передає його контейнеру сервлетів. Контейнер сервлетів може виконуватись в тому ж самому процесі, що і web-сервер, в окремому процесі на тій же системі, що і web-сервер, або взагалі на іншій системі.
  3.  Контейнер сервлетів з'ясовує, який сервлет слід викликати, виходячи з інформації про наявні сервлети, та викликає його, передаючи в якості параметрів об'єкти запиту та відповіді.
  4.  Сервлет використовує об'єкт запиту для отримання інформації про віддаленого користувача, параметри HTTP запиту, тощо. Сервлет виконує запрограмовані в ньому дії та надсилає результати роботи через об'єкт відповіді.
  5.  Після того, як сервлет припиняє обробку запиту, контейнер сервлетів перевіряє коректність відправки відповіді та повертає управління до web-сервера, який, в свою чергу, пересилає відповідь клієнту.

Зразок створення сервлету

Продемонструємо процес створення Java-сервлету на традиційному прикладі програми "Hello World". Цей сервлет буде виводити вітання з ім'ям користувача і кількістю запитів, виконаних з моменту запуску сервлету.

Всі сервлети створюються шляхом реалізації базового інтерфейсу Servlet і визначення Java-методів для обробки звернень, що надходять. У даному прикладі використаємо клас HttpServlet, який розуміє HTTP-протокол і обробляє велику частину необхідних для Web-програм особливостей.

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class FirstServlet extends HttpServlet {

int connections;

public void init(ServletConfig conf) throws ServletException {

 super.init(conf);

 connections = 0;

}

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws IOException{

 //Get а channel to the Web browser, so we can send output

 PrintWriter out = res.getWriter();

 res.setContentType("text/html"); // Required for HTTP

 out.println("<HTML><HEAD><TITLE>Servlets 101</TITLE></HEAD>");

 out.print("Say hello to Java Servlet Programming ");

 out.println(req.getParameter("userName"));

 out.print("<p>You are caller number ");

 connections++;

 out.println(Integer.toString(connections));

 out.close(); //Close the output stream

}

}

Як тільки Java-код написаний, його потрібно скомпілювати (в найпростішому випадку javac FirstServlet.java) і помістити одержаний файл на Web-сервер. Як помістити файл FirstServlet.class на сервер –  залежить від виду сервера.

Для виконання і перевірки з Web-браузера, потрібно ввести, наприклад,  адресу: http://localhost:8080/servlet/FirstServlet?userName=John 

В даному випадку "userName=John" – це вхідний параметр сервлету. 

Розбір складових частин сервлету

Клас HttpServlet визначає методи для роботи з різними видами HTTP-з'єднань. В даному випадку використовуються два методи - init() і doGet().
HttpServlet.init(ServletConfig conf) виконується тоді, коли сервлет вперше завантажується. Будь-які створені тут ресурси (за умови, що вони видні у всьому класі, наприклад, поля-об’єкти) будуть доступні при кожному зверненні до сервлету. Саме тут створюються глобальні змінні і будь-які ресурси, не залежні від індивідуальних звернень до сторінки. У даному (спрощеному) варіанті ініціалізується змінна для зберігання відомостей про кількість звернень до даної сторінки.

HttpServlet.doGet (HttpServletRequest, HttpServletResponse) приймає два параметри - HttpServletRequest і HttpServletResponse. Це Java-об'єкти, які обмінюються інформацією між сервлетом і сервером. У даному прикладі HttpServletResponse одержує PrintWriter, який дозволяє нам посилати інформацію назад Web-браузеру.

Трьома методами, якими скористались, є:

PrintWriter.println(String s) – Посилає браузеру рядок символів, що закінчується CR LF. PrintWriter.print(String s) – Посилає браузеру рядок символів без CR LF.

PrintWriter.close() – Закриває потік.

Також використовується метод setContentType(String contentType) для повідомлення браузеру, до отримання якого виду даних він повинен бути готовий. Зазвичай, це "text/html".

HttpServletRequest включає всю інформацію, що надається сервлету браузером і Web-сервером (інформація про оточення, змінні HTTP, змінні форм і т.п.). Метод HttpServlet.getParameterName(String) використовується для читання змінних HTML-форм. В цьому випадку сервлету передається змінна під назвою "userName" із значенням "John", а команда req.getParameter("userName") повертатиме змінну типу String, що містить текст "John".


 

А также другие работы, которые могут Вас заинтересовать

43244. Процесс синхронизации телевизора LG и компьютера 2.36 MB
  Данное напряжение получается в схеме платы сопряжения из питающего напряжения 5Вольт логических элементов микросхем. Сторона элементов В таблице 4 отразим перечень элементов используемых в разработанной плате сопряжения ПК с телевизором. Таблица 4 Перечень элементов схемы электрической принципиальной сопряжения ПК с телевизором Поз. РАСЧЕТ НАДЕЖНОСТИ Расчет надежности чаще всего сводится к определению числовых значений наработки на отказ Т0 и вероятности безотказной работы Рt по известным интенсивностям отказов элементов.
43245. Расчёт ПОТС и ЦРБ 605.5 KB
  Техническая служба ГПС включает систему управленческих, производственно-технических и оперативных подразделений, организуемых в целях технического и материального обеспечения оперативно-служебной и хозяйственной деятельности пожарной охраны.
43246. Проектирование технологического процесса изготовления детали типа «корпус редуктора» в условиях крупносерийного производства 1.25 MB
  Курсовой проект является большой самостоятельной работой будущего технолога, направленной на решение конкретных задач в области совершенствования технологии, организации производства и улучшение технико-экономических показателей работы участка. Наряду с этим курсовое проектирование закрепляет умение студента пользоваться справочной литературой, ГОСТами, таблицами, номограммами, нормами и расценками умело, сочетая справочные данные с теоретическими знаниями, полученными в процессе изучения курса. Проект закрепляет, углубляет и обобщает знания, полученные студентами во время лекционных и практических знаний.
43247. Моделирование процесса функционирования ВЦ при условии, что обработать необходимо 100 заданий 2.02 MB
  После обработки на процессоре как коротких так и длинных заданий производится вывод результатов на печать в течение 2 1 мин. Смоделировать процесс функционирования ВЦ при условии что обработать необходимо 100 заданий. Определить число коротких и длинных заданий ожидающих обработки а также число обработанных коротких заданий и коэффициент загрузки процессора.
43248. Проектирование стальной промежуточной опоры с исходными данными для проектирования 902.5 KB
  Характеристика провода. Нахождение исходного режима работы провода. Общая характеристика воздушной линии электропередач Воздушная линия электропередачи ВЛ служит для передачи и распределения электрической энергии по проводам расположенным на открытом воздухе и прикрепленным к опорам или кронштейнам и стойкам на инженерных сооружениях при помощи изоляторов и арматуры. Основными элементами воздушных линий являются провода изоляторы линейная арматура опоры и фундаменты.
43249. РОЗРАХУНОК ХАРАКТЕРИСТИК РАДІОТЕХНІЧНИХ СИГНАЛІВ 226.5 KB
  Розрахунок параметрів первинного аналогового сигналу.Розрахунок параметрів сигналу аналогової модуляції. Розрахунок параметрів первинного цифрового сигналу. Розрахунок параметрів сигналу дискретної модуляції.
43250. Доходи Державного бюджету України 185 KB
  Характеристика доходів державного бюджету. Соціальноекономічна суть призначення і роль доходів Державного бюджету України. Джерела надходжень державного бюджету.Аналіз та склад доходів бюджету за перше півріччя 20092010рр. Одержавлення національного доходу здійснюється державою різними методами. Основним методами, які використовуються органами державної влади для перерозподілу національного доходу та утворення бюджетних доходів, являються податки, державний кредит та емісія грошей.
43251. Полевые транзисторы в интегральных схемах 323.5 KB
  Чем больше обратное напряжение тем глубже обедненный слой и тем соответственно меньше толщина канала w. Таким образом меняя обратное напряжение на затворе можно менять поперечное сечение а значит и сопротивление канала. При наличии напряжения на стоке будет меняться ток канала т. Определим зависимость толщины и сопротивления канала от управляющего напряжения на затворе при нулевом напряжении на стоке.
43252. Расчет токарного сборного резца с треугольной пластиной 386 KB
  Определяем глубину резания. Определяем скорость м мин главного движения резания допускаемую режущими свойствами резца. Определяем главный поправочный коэффициент...