18117

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

Лекция

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

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

Украинкский

2013-07-06

52.5 KB

4 чел.

Тема 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".


 

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

80799. Требования в области охраны окружающей среды при осуществлении хозяйственной и иной деятельности 30.56 KB
  При этом должны предусматриваться мероприятия по охране окружающей среды восстановлению природной среды рациональному использованию и воспроизводству природных ресурсов обеспечению экологической безопасности. Нарушение требований в области охраны окружающей среды влечет за собой приостановление по решению суда размещения проектирования строительства реконструкции ввода в эксплуатацию эксплуатации консервации и ликвидации зданий строений сооружений и иных объектов. Прекращение в полном объеме размещения проектирования...
80800. Правовое регулирование обращения с химическими и биологическими веществами 29.88 KB
  Закон о санитарноэпидемиологическом благополучии населения предусмотрел в качестве одной из основных мер обеспечения безопасного обращения с потенциально опасными для человека химическими биологическими веществами и отдельными видами продукции государственную регистрацию ст. Потенциально опасные для человека химические биологические вещества и отдельные виды продукции допускаются к производству транспортировке закупке хранению реализации и применению использованию после их государственной регистрации. Правовое регулирование...
80801. Экологические требования при эксплуатации опасных производственных объектов 32.08 KB
  Организация эксплуатирующая опасный производственный объект обязана: соблюдать положения настоящего Федерального закона других федеральных законов и иных нормативных правовых актов Российской Федерации а также нормативных технических документов в области промышленной безопасности; иметь лицензию на осуществление конкретного вида деятельности в области промышленной безопасности подлежащего лицензированию в соответствии с законодательством Российской Федерации; обеспечивать укомплектованность штата работников опасного производственного...
80802. Правовое регулирование генно-инженерной деятельности 32.83 KB
  Внедрение результатов генноинженерной деятельность сопряжено с потенциальными отрицательными последствиями для природы. В связи с этим возникает потребность в правовом регулировании экологических отношений возникающих при осуществлении генноинженерной деятельности. Этим целям служит Федеральный закон О государственном регулировании генноинженерной деятельности .
80803. Меры обеспечения экологической безопасности 31.19 KB
  Экологическая безопасность обеспечивается комплексом правовых организационных финансовых материальных и информационных мер предназначенных для прогнозирования предотвращения ликвидации реальных и потенциальных угроз безопасности смягчения их последствий. Угроза экологической безопасности выражает повышенную вероятность гибели отдельных природных объектов существенного загрязнения отравления или заражения окружающей среды масштабы которых определяются исходя из размеров поражения окружающей среды его устойчивости возможности...
80804. Предупреждение и ликвидация чрезвычайных ситуаций природного и техногенного характера 32.12 KB
  Предупреждение чрезвычайных ситуаций это комплекс мероприятий проводимых заблаговременно и направленных на максимально возможное уменьшение риска возникновения чрезвычайных ситуаций а также на сохранение здоровья людей снижение размеров ущерба окружающей среде и материальных потерь в случае их возникновения. Ликвидация чрезвычайных ситуаций это аварийноспасательные и другие неотложные работы проводимые при...
80805. Правовые меры обеспечения радиационной безопасности 30.43 KB
  Федеральный закон о радиационной безопасности населения закрепляет требования по обеспечению радиационной безопасности при обращении с радиоактивными веществами ядерными материалами. При обращении с источниками ионизирующего излучения организации обязаны: 1соблюдать требования законодательства РФ норм правил и нормативов в области обеспечения радиационной безопасности; 2 планировать и осуществлять мероприятия по обеспечению радиационной безопасности; 3 осуществлять систематический производственный контроль за радиационной обстановкой на...
80806. Правовой режим территорий подвергшихся радиоактивному загрязнению 29.82 KB
  зона эвакуации территория вокруг Чернобыльской АЭС с которой в 1986 г. было эвакуировано население 30километровая зона; 2. зона первоочередного отселения; 3. зона последующего отселения; 4.
80807. Порядок обращения с отходами производства и потребления 31.6 KB
  была принята серия специальных законодательных и иных нормативноправовых актов полностью или частично регламентирующих обращение с отходами в рамках логического правотворчества что послужило прорывом в данной области. определил правовые основы обращения с отходами производства и потребления в целях предотвращения их вредного воздействия на здоровье человека и окружающую среду впервые четко зафиксировал принципы государственной политики в сфере обращения с отходами: охрана здоровья человека поддержание и восстановление благоприятного...