Сервлет
Сервлет — это класс Java, который обрабатывает запросы, обрабатывает их и отвечает ответом.
Например, мы можем использовать сервлет для сбора входных данных от пользователя через HTML-форму, запроса записей из базы данных и динамического создания веб-страниц.
Сервлеты находятся под управлением другого Java-приложения, называемого контейнером сервлетов. Когда приложение, работающее на веб-сервере, получает запрос,сервер передает запрос контейнеру сервлетов, который, в свою очередь, передает его целевому сервлету.
Веб-контейнер поддерживает жизненный цикл экземпляра сервлета. Давайте посмотрим жизненный цикл сервлета:
- Класс Servlet загружен.
- Создается экземпляр сервлета.
- вызывается метод init.
- Вызывается метод службы.
- процесс уничтожения собран.
1) Класс сервлета загружен
Загрузчик классов отвечает за загрузку класса сервлета. Класс сервлета загружается, когда веб-контейнер получает первый запрос на сервлет.
2) Экземпляр сервлета создан
Веб-контейнер создает экземпляр сервлета после загрузки класса сервлета. Экземпляр сервлета создается только один раз в жизненном цикле сервлета.
3) вызывается метод init
Веб-контейнер вызывает метод инициализации только один раз после создания экземпляра сервлета. Метод init используется для инициализации сервлета. Это метод жизненного цикла Java. servlet.Servlet интерфейс. Синтаксис метода init приведен ниже:
- public void init(конфигурация ServletConfig) выдает ServletException
4) вызывается сервисный метод
Веб-контейнер вызывает метод службы каждый раз при получении запроса на сервлет. Если сервлет не инициализирован, он выполняет первые три шага, как описано выше, а затем вызывает метод службы. Если сервлет инициализирован, он вызывает метод службы. Обратите внимание, что сервлет инициализируется только один раз. Синтаксис служебного метода интерфейса Servlet приведен ниже:
- Служба public void (запрос ServletRequest, ответ ServletResponse)
- выдает 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, которые используют элемент типа исключения, для совпадения с выданным типом исключения.
Для получения дополнительной информации посетите ссылки: