Generic Servlet Demo

Сервлеты и JSP в Java

Web – это система интернет-серверов, которая поддерживает форматированные документы. Документы форматируются с использованием языка разметки, называемого HTML (HyperText Markup Language), который поддерживает ссылки на другие документы, такие как графические, аудио- и видеофайлы и т. д.

HTTP (протокол передачи гипертекста)

HTTP используется клиентами и серверами для общения в сети. Он считается протоколом без сохранения состояния, поскольку поддерживает только один запрос на соединение. С помощью HTTP клиенты подключаются к серверу для отправки одного запроса, а затем отключаются. И этот механизм позволяет большему количеству пользователей подключаться к данному серверу в течение определенного периода времени. Здесь клиент отправляет HTTP-запрос, а сервер отвечает клиенту с помощью HTML-страницы, используя HTTP.

Введение в сервлеты

Сервлет – это программный модуль Java на стороне сервера, который обрабатывает запросы клиентов и реализует интерфейс сервлета. Могут отвечать на любые запросы, и они обычно используются для расширения приложений, размещаемых на веб-серверах.

Сервлеты-введение

Жизненный цикл

Весь жизненный цикл сервлета управляется контейнером сервлета, который использует интерфейс javax.servlet.Servlet для понимания объекта сервлета и управления им.

Жизненный цикл сервлета проходит в основном четыре этапа:

Жизненный цикл сервлета

Загрузка

Когда сервер запускается, контейнер сервлета развертывается и загружает все сервлеты.

Инициализация

Затем сервлет инициализируется путем вызова метода init(). Метод Servlet.init() вызывается контейнером Servlet для уведомления о том, что этот экземпляр Servlet успешно создан и готов к запуску.

Обработка запросов

Затем сервлет вызывает метод service() для обработки запроса клиента и вызывается для информирования сервлета о клиентских запросах.

Уничтожение

Наконец, сервлет завершается вызовом destroy(). Метод запускается только один раз за время существования сервлета и сообщает об окончании экземпляра сервлета.

Методы init() и destroy() вызываются только один раз. Наконец, сервлет – это сборщик мусора сборщиком мусора JVM. Итак, на этом завершается жизненный цикл сервлета.

Шаги по созданию

Чтобы создать сервлет, нам нужно выполнить несколько шагов по порядку. Они заключаются в следующем:

  1. Создать структуру каталогов.
  2. Создать сервлет.
  3. Скомпилировать сервлет.
  4. Добавить сопоставления в файл web.xml.
  5. Запустить сервер и развернуть проект.
  6. Доступ к сервлету.

Теперь, основываясь на вышеописанных шагах, давайте создадим программу, чтобы лучше понять, как работает сервлет.

Для запуска программы сервлета у нас должен быть установлен и настроен сервер Apache Tomcat. Eclipse для Java EE предоставляет встроенный Apache Tomcat. Как только сервер настроен, вы можете начать с вашей программы. Следует отметить один важный момент – для любой программы сервлета вам нужно 3 файла – файл index.html, файл классов Java и файл web.xml. Самый первый шаг – создать динамический веб-проект, а затем продолжить.

Читайте также:  Css 100 height width padding

Теперь давайте рассмотрим пример, в котором будем создавать простой сервлет входа в систему и отображать вывод в браузере.

Сначала создадим файл index.html.

Далее закодируем файл класса Java.

package Edureka; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse; public class Login extends HttpServlet < protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException PrintWriter pw=res.getWriter(); res.setContentType("text/html"); String user=req.getParameter("userName"); String pass=req.getParameter("userPassword"); pw.println("Login Success. ") if(user.equals("edureka") pass.equals("edureka")) pw.println("Login Success. "); else pw.println("Login Failed. "); pw.close(); >>

В приведенном выше коде установили условие – если имя пользователя и пароль равны edureka, только тогда он будет отображаться успешно вошли в систему, в противном случае вход будет отказано. После написания файла класса Java последний шаг – добавить сопоставления в файл web.xml. Давайте посмотрим, как это сделать.

Файл web.xml будет присутствовать в папке WEB-INF вашего веб-контента. Если его нет, вы можете щелкнуть по дескриптору развертывания и нажать «Создать заглушку дескриптора развертывания». Как только вы подготовите файл web.xml, нужно добавить в него сопоставления. Давайте посмотрим, как выполняется сопоставление на следующем примере:

 http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"> LoginServlet Login Edureka.Login  Login /Login  index.html   

Универсальные

Это независимый от протокола сервлет, который должен переопределять метод service() для обработки клиентского запроса. Метод service() принимает два аргумента: объект ServletRequest и объект ServletResponse. Работа объекта запроса состоит в том, чтобы информировать сервлет о запросе, сделанном клиентом, в то время как объект ответа возвращает ответ клиенту. GenericServlet является абстрактным классом, и у него есть только один абстрактный метод – service(). В этом вся концепция, когда мы создаем универсальный сервлет путем расширения класса GenericServlet, мы должны переопределить метод service().

Теперь давайте посмотрим, как создать и вызвать универсальный сервлет. Будем кодировать 3 файла, как показано ниже:

HTML-файл

Мы создаем файл HTML, который будет вызывать сервлет, как только нажмем на ссылку на веб-странице. Создайте этот файл в папке WebContent. Путь к этому файлу должен выглядеть следующим образом: WebContent / index.html

   Click here to call Generic Servlet   

Файл класса Java

Здесь мы будем создавать универсальный сервлет, расширяя класс GenericServlet. При создании GenericServlet необходимо переопределить метод service(). Щелкните правой кнопкой мыши на папке src и создайте новый файл класса и назовите файл как общий. Путь к файлу должен выглядеть следующим образом: Java Resouces / src / default package / generic.java

package EdurekaGeneric; import java.io.*; importjavax.servlet.*; public class generic extends GenericServlet< public void service(ServletRequest req,ServletResponse res) throws IOException,ServletException< res.setContentType("text/html"); PrintWriter pwriter=res.getWriter(); pwriter.print(""); pwriter.print(""); pwriter.print(" 

Generic Servlet Example

"); pwriter.print("Welcome to Edureka YouTube Channel"); pwriter.print(""); pwriter.print(""); > >

web.xml

Этот файл можно найти по этому пути. WebContent / WEB-INF / web.xml. В этом файле мы сопоставим сервлет с конкретным URL. Поскольку вызываем страницу приветствия после нажатия на ссылку в index.html, она отобразит страницу приветствия в класс Servlet, который уже создали выше.

 MyGenericServlet EdurekaGeneric.generic  MyGenericServlet /welcome  

После этого запустите сервер Tomcat и запустите сервлет. Вы получите желаемый результат. Так что это все о универсальных сервлетов. Теперь давайте двигаться дальше и понять концепцию отслеживания сеансов.

Отслеживание сеансов

Сессия просто означает определенный интервал времени. Отслеживание сеанса – это метод поддержания состояния (данных) пользователя, также известный как управление сеансом в сервлете. Таким образом, каждый раз, когда пользователь запрашивает сервер, сервер обрабатывает запрос как новый запрос.

сервер обрабатывает запрос

Чтобы распознать конкретного пользователя, нам нужно отслеживать сеанс.

Файл cookie – это небольшой фрагмент информации, который сохраняется между несколькими клиентскими запросами. Имеет имя, одно значение и дополнительные атрибуты, такие как комментарий, путь и квалификаторы домена, максимальный возраст и номер версии.

Поскольку это метод отслеживания сеансов, по умолчанию каждый запрос рассматривается как новый запрос.

Как работает Cookie

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

Давайте посмотрим пример создания файла cookie, добавления ответа и получения результатов.

Пример

package Edureka; import java.io.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; @WebServlet("/login") public class MyServlet1 extends HttpServlet< public void doGet(HttpServletRequest request,nbsp; HttpServletResponse response) < try< response.setContentType("text/html"); PrintWriter pwriter = response.getWriter(); String name = request.getParameter("userName"); String password = request.getParameter("userPassword"); pwriter.print("Hello here:"+name); pwriter.print(" Your Password is: "+password); //Creating two cookies Cookie c1=new Cookie("userName",name); Cookie c2=new Cookie("userPassword",password); //Adding the cookies to response header response.addCookie(c1); response.addCookie(c2); pwriter.print(" View Details"); pwriter.close(); >catch(Exception exp) < System.out.println(exp); >> >
package Edureka; import java.io.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; @WebServlet("/welcomehere") public class MyServlet2 extends HttpServlet < public void doGet(HttpServletRequest request, HttpServletResponse response)< try< response.setContentType("text/html"); PrintWriter pwriter = response.getWriter(); //Reading cookies Cookie[] c=request.getCookies(); //Displaying User name value from cookie pwriter.print("Name here: "+c[0].getValue()); pwriter.print("Password: "+c[1].getValue()); //pwriter.print(" View Details"); pwriter.close(); >catch(Exception exp) < System.out.println(exp); >> >

Теперь давайте создадим простую HTML-форму для файлов cookie.

Теперь последний шаг – создать файл XML и добавить в него все сопоставления.

 Servlet1 Edureka.MyServlet1  Servlet1 /login  Servlet2 Edureka.MyServlet2  Servlet2 /welcomehere  

Теперь вы готовы к казни. Вы можете запустить код и получить желаемый результат. Вот как работает cookie.

Страницы сервера Java

JSP или Java Server Pages – это технология, которая используется для создания веб-приложений точно так же, как технология сервлетов. Это расширение Servlet – поскольку оно предоставляет больше функциональных возможностей, чем сервлет, такой как язык выражений, JSTL и т. Д. Страница JSP состоит из тегов HTML и тегов JSP. Страницы JSP легче поддерживать, чем сервлет, потому что мы можем разделить проектирование и разработку.

Элементы сценариев

Элементы сценариев предоставляют возможность вставлять Java-код в JSP. Существует три типа элементов сценариев:

Тег скриптлета

Используется для выполнения исходного кода Java в JSP.

В этом примере мы создали два файла index.html и welcome.jsp. Файл index.html получает имя пользователя от пользователя, а файл welcome.jsp печатает имя пользователя с приветственным сообщением. Теперь давайте посмотрим на код.

Тег выражения

Код, помещенный в тег выражения JSP, записывается в выходной поток ответа. Поэтому вам не нужно записывать out.print() для записи данных. Он в основном используется для печати значений переменной или метода.

Теперь давайте возьмем небольшой пример отображения текущего времени. Чтобы отобразить текущее время, мы использовали метод getTime() класса Calendar. GetTime() является методом экземпляра класса Calendar, поэтому мы вызвали его после получения экземпляра класса Calendar методом getInstance().

Тег объявления

Используется для объявления полей и методов. Код, написанный внутри тега объявления JSP, размещается вне метода service() автоматически сгенерированного сервлета. Так что он не получает память при каждом запросе.

В приведенном ниже примере тега объявления JSP мы определяем метод, который возвращает куб с заданным числом, и вызываем этот метод из тега выражения JSP. Но мы также можем использовать тег скриптлета JSP для вызова объявленного метода. Посмотрим как. Файл: index.jsp

Объекты запросов и ответов

Запрос JSP – это неявный объект типа HttpServletRequest, который создается для каждого запроса JSP веб-контейнером. Он может использоваться для получения информации запроса, такой как параметр, информация заголовка, удаленный адрес, имя сервера, порт сервера, тип содержимого, кодировка символов и т. Д. Он также может использоваться для установки, получения и удаления атрибутов из области запроса JSP.

Пример неявного объекта запроса JSP

Неявный объект ответа JSP

В JSP ответ является неявным объектом типа HttpServletResponse. Экземпляр HttpServletResponse создается веб-контейнером для каждого запроса JSP. Он может использоваться для добавления или манипулирования ответами, такими как перенаправление ответа на другой ресурс, ошибка отправки и т. д.

Источник

Оцените статью