Сервлет

Сервлет — это класс Java, который обрабатывает запросы, обрабатывает их и отвечает ответом.

Например, мы можем использовать сервлет для сбора входных данных от пользователя через HTML-форму, запроса записей из базы данных и динамического создания веб-страниц.

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

Веб-контейнер поддерживает жизненный цикл экземпляра сервлета. Давайте посмотрим жизненный цикл сервлета:

  1. Класс Servlet загружен.
  2. Создается экземпляр сервлета.
  3. вызывается метод init.
  4. Вызывается метод службы.
  5. процесс уничтожения собран.

1) Класс сервлета загружен

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

2) Экземпляр сервлета создан

Веб-контейнер создает экземпляр сервлета после загрузки класса сервлета. Экземпляр сервлета создается только один раз в жизненном цикле сервлета.

3) вызывается метод init

Веб-контейнер вызывает метод инициализации только один раз после создания экземпляра сервлета. Метод init используется для инициализации сервлета. Это метод жизненного цикла Java. servlet.Servlet интерфейс. Синтаксис метода init приведен ниже:

  1. public void init(конфигурация ServletConfig) выдает ServletException

4) вызывается сервисный метод

Веб-контейнер вызывает метод службы каждый раз при получении запроса на сервлет. Если сервлет не инициализирован, он выполняет первые три шага, как описано выше, а затем вызывает метод службы. Если сервлет инициализирован, он вызывает метод службы. Обратите внимание, что сервлет инициализируется только один раз. Синтаксис служебного метода интерфейса Servlet приведен ниже:

  1. Служба public void (запрос ServletRequest, ответ ServletResponse)
  2. выдает ServletException, IOException

5) вызывается метод уничтожения

Веб-контейнер вызывает метод destroy перед удалением экземпляра сервлета из службы. Это дает сервлету возможность очистить любой ресурс, например, память, поток и т. д. Метод уничтожения интерфейса сервлета имеет следующий синтаксис: public void destroy().

Общий сервлет:

• Generic Servlet — это прямое подразделение типа Servlet. Сервлет написан в таком виде

javax.servlet.GenericServlet

Этот сервлет не следует какому-либо протоколу или не привязан к какой-либо форме правил протокола относительно того, как писать сервлет и в каком порядке. Это приводит к тому, что в системе не поддерживается какой-либо HTTP-протокол.

HTTP-сервлет:

HTTP Servlet является подклассом Generic Servlet. Сервлет называется javax.servlet.HttpServlet.

  • Как следует из названия, они поддерживают HTTP и могут работать в любой среде HTTP с помощью серверов. Когда есть методы, специфичные для HTTP, мы можем продолжить работу с сервлетом HTTP.

Дескриптор развертывания: web.xml

Веб-приложения Java используют файл дескриптора развертывания, чтобы определить, как URL-адреса сопоставляются с сервлетами, какие URL-адреса требуют аутентификации и другую информацию. Этот файл называется web.xml и находится в папке WAR приложения в каталоге WEB-INF/. web.xml является частью стандарта сервлетов для веб-приложений.

дескриптор развертывания web.xml

Дескриптор развертывания веб-приложения описывает классы, ресурсы и конфигурацию приложения, а также то, как веб-сервер использует их для обслуживания веб-запросов. Когда веб-сервер получает запрос для приложения, он использует дескриптор развертывания для сопоставления URL-адреса запроса с кодом, который должен обрабатывать запрос.

Дескриптор развертывания — это файл с именем web.xml. Он находится в WAR приложения в каталоге WEB-INF/. Файл представляет собой XML-файл, корневой элемент которого — <web-app>.

Вот простой web.xml пример, который сопоставляет все пути URL (/*) с классом сервлета mysite.server.ComingSoonServlet:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-appWEB-INF/1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>comingsoon</servlet-name>
        <servlet-class>mysite.server.ComingSoonServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>comingsoon</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

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

JSP

Java Server Pages (JSP) — это технология программирования на стороне сервера, которая позволяет создавать динамический, независимый от платформы метод создания веб-приложений. JSP имеет доступ ко всему семейству API-интерфейсов Java, включая API-интерфейс JDBC для доступа к корпоративным базам данных. Страницы JavaServer часто служат той же цели, что и программы, реализованные с использованием Common Gateway Interface (CGI).

Приложения JSP

Как упоминалось ранее, JSP — один из наиболее широко используемых языков в Интернете. Я собираюсь перечислить некоторые из них здесь:

JSP против Active Server Pages (ASP)

Преимущества JSP двояки. Во-первых, динамическая часть написана на Java, а не на Visual Basic или другом языке, специфичном для MS, поэтому она мощнее и проще в использовании. Во-вторых, его можно переносить на другие операционные системы и веб-серверы сторонних производителей.

JSP против чистых сервлетов

Удобнее писать (и модифицировать!) обычный HTML, чем иметь множество операторов печати, которые генерируют HTML.

JSP и серверные включения (SSI)

SSI на самом деле предназначен только для простых включений, а не для «настоящих» программ, которые используют данные формы, устанавливают соединения с базой данных и тому подобное.

JSP против JavaScript

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

JSP против статического HTML

Обычный HTML, конечно, не может содержать динамическую информацию.

Разница между JSP и сервлетом

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

JSP используется для создания веб-приложений так же, как технология Servlet. JSP – это текстовый документ, содержащий два типа текста: статические данные и динамические данные. Статические данные могут быть выражены в любом текстовом формате (например, HTML, XML, SVG и WML), а динамическое содержимое может быть выражено с помощью элементов JSP.

Директивы JSP — это элементы исходного кода JSP, которые указывают веб-контейнеру, как преобразовать страницу JSP в соответствующий сервлет.
Синтаксис:

<%@ directive attribute = "value"%>

Существует три типа директив:

  • директива страницы.
  • включить директиву.
  • директива taglib.

JSTL означает Стандартная библиотека тегов JSP. JSTL — это стандартная библиотека тегов, которая предоставляет теги для управления поведением страницы JSP. Теги JSTL можно использовать для операторов итерации и управления, интернационализации, SQL и т. д.

банки JSTL

Ярлыки JSTL специфичны для контейнера, например, в Tomcat нам нужно включить файлы jar jstl.jar и standard.jar в путь сборки проекта. Если их нет в каталоге lib контейнера, вы должны включить их в свое приложение. Если у вас есть проект maven, следующие зависимости должны быть добавлены в файл pom.xml, иначе вы получите следующую ошибку на страницах JSP — eclipse Can not find the tag library descriptor for "https://java.sun.com/jsp/jstl/ core"

<dependency>
	<groupId>jstl</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
</dependency>
<dependency>
	<groupId>taglibs</groupId>
	<artifactId>standard</artifactId>
	<version>1.1.2</version>
</dependency>

Основные теги JSTL:

Теги JSTL Core обеспечивают поддержку итерации, условной логики, перехвата исключения, URL-адреса, ответа пересылки или перенаправления и т. д.

JSTL означает стандартную библиотеку тегов JSP. JSTL — это стандартная библиотека тегов, которая предоставляет теги для управления поведением страницы JSP.

Теги JSTL SQL

  • SQL: установить источник данных.
  • SQL: запрос.
  • SQL: обновление.
  • SQL: параметр.
  • SQL:параметр даты.
  • SQL: транзакция.

Фильтр

Фильтр — это объект, который вызывается при предварительной и последующей обработке запроса. Он в основном используется для выполнения задач фильтрации, таких как преобразование.

Когда сервлет выдает исключение, веб-контейнер ищет конфигурации в web.xml, которые используют элемент типа исключения, для совпадения с выданным типом исключения.

Для получения дополнительной информации посетите ссылки: