Введение в жизненный цикл JSP

В этой статье мы обсудим жизненный цикл JSP. Страницы сервера Java, технология на стороне сервера, которая берет на себя ответственность за обработку на сервере.

1. Где нам нужен JSP?

  • Что ж, если вы занимаетесь веб-разработкой, и мы видим создание динамических веб-сайтов, то JSP играют важную роль, так как рендеринг выполняется динамически.
  • JSP работают только с базовым HTML, тело страницы состоит только из базовых HTML-разметок, но есть определенные заполнители, параметры, значения списка, итераторы, которые возможны только с JSP, HTML дает вам статическое отображение только при выполнении любых разрешений во время выполнения требуется динамическая обработка, поэтому решения JSP появляются там как решение.
  • JSP позволяет разделить генерацию контента и представление контента

Давайте рассмотрим базовый пример, который даст вам представление об этом динамическом рендеринге.



Содержимое или логика внутри отображаются динамически и передаются только бэкэндом.

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

2. Жизненный цикл JSP:

Есть определенные фазы, в которых этот цикл разделен, определяется следующим образом:

  1. Фаза трансляции - когда файл JSP преобразуется в файл сервлета.
  2. Фаза компиляции - где файл сервлета конвертируется в класс сервлета.
  3. Класс загрузки
  4. Создание объекта сервлета
  5. Контейнер сервлета вызывает метод jspInit () для инициализации
  6. Контейнер сервлетов вызывает _jspService () для обработки запроса
  7. Очистите JSP, здесь контейнер сервлета вызовет метод jspDestroy ().

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

Шаг 1

На этапе трансляции контейнер сервлета преобразует JSP в сервлет, чтобы кодирование на основе тегов получило эквивалентную форму в java, чтобы виртуальная машина Java (JVM) могла это понимать (поскольку не понимает язык тегов), Этот перевод выполняется сервером либо во время развертывания веб-приложения, либо когда JSP получает свой первый запрос на выполнение.

Шаг 2

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

Шаг 3

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

Шаг 4

После загрузки файла класса веб-контейнером контейнер JSP теперь использует конструктор без аргументов для создания экземпляра класса сервлета. Теперь, когда контейнер инициализирует объекты с помощью вызова метода jsplnit ().

Public void jsplnit()
(
// servlet initialization related snipped to be placed here
)

Шаг 5

Теперь пришло время для обработки запросов, здесь инициализированные эквивалентные объекты сервлета JSP используются для обработки клиентских запросов. Метод _jspService () вызывается веб-контейнером. Этот вызов выполняется одним объектом сервлета, передающим объект HTTPServletRequest и объект HTTPServletResponse для соответствующих запросов и ответов. Обратите внимание, что не предусмотрено переопределения метода _jspService ().

Public void _jspService( HttpServletRequest request, HttpServletResponse response)
(
//snipped is placed here
)

Шаг 6

Последний шаг называется очисткой JSP, JSP должен быть исключен из использования контейнером, а метод jspDestroy () используется для того же самого, этот метод должен вызываться только один раз. Существует условие для переопределения этого метода, и это может быть сделано для случаев, когда мы хотим выполнить наше настраиваемое действие, такое как освобождение соединения для базы данных и т. Д.

public void jspDestory()
(
// snippet is placed here
)

Пример :

Давайте создадим форму входа в систему для нашего примера приложения, и мы будем использовать JSP для отображения определенного содержимого здесь.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


В приведенном выше примере код, размещенный внутри, визуализируется динамически, как мы уже упоминали ранее, теперь, после отправки этого запроса, он будет получен контроллером действия, который в основном является классом Java, который содержит параметры, соответствующие именам, упомянутым в Файл JSP.

Контейнер сервлета создает модальный объект, и на контент можно ссылаться в других JSP, ссылаясь на этот конкретный контроллер.

Этот вид подхода, основанного на MVC, в настоящее время находит применение в таких технологиях, как -

  1. Spring MVC
  2. Struts 2
  3. сервлеты

Spring MVC и Struts 2 представили свой конкретный URI для настраиваемого использования JSP, а также представили различные варианты тегов для этого, такие как автозаполнение, итератор, список и т. Д.

Так что JSP находит идеальное место во многих фреймворках благодаря своей гибкости.

Вывод

  • Таким образом, мы узнали, что динамические веб-сайты визуализируются через JSP, в то время как статические страницы можно напрямую переводить в HTML, поскольку с этого момента они не требуют каких-либо манипуляций с данными / контентом.
  • Современные технологии совместимы с JSP и используются стоек и пружиноподобных фреймворков, которые находят место в крупных приложениях, связанных с банковским делом, SCM, розничными магазинами и т. Д.
  • Совместим с AJAX для динамического рендеринга.
  • Приложение не может быть типа одной страницы, так как каждый раз требуется загрузка страницы из серверной части.
  • Плитки можно использовать для базовых форматов разметки в стойках и пружинах, и нам нужно снова и снова визуализировать только тело
  • В конечном итоге коды конвертируются в HTML-эквивалент в интерфейсе пользователя.
  • JSP дифференцируют концепцию представления контента и генерации контента.
  • Перехватчики предоставляются различными структурами, которые облегчают жизнь разработчикам, например утилиты в структурах для процессов загрузки файлов и т. Д.

Рекомендуемые статьи

Это было руководство к жизненному циклу JSP. Здесь мы обсудили введение, этапы и пример жизненного цикла JSP. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. JSP против ASP
  2. AJAX Интервью Вопросы
  3. Что такое MVC?
  4. JSP против сервлетов
  5. Итераторы в C #