Теги действий JSP

⚡ Умное резюме

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

  • 🏷️ Стандартный набор: Одиннадцать стандартных тегов действий обрабатывают включения, переадресации, компоненты, плагины и вывод XML.
  • 📜 Синтаксис XML: Теги действий строго соответствуют XML-формату и переоцениваются при каждом запросе.
  • 🔗 Интеграция компонентов: jsp:useBean, jsp:setProperty и jsp:getProperty управляют JavaЖизненный цикл и свойства бобов.
  • Последовательность страниц: jsp:include объединяет ресурсы; jsp:forward переносит обработку запросов на другую страницу.
  • 🧪 Динамический XML: Компоненты jsp:body, jsp:attribute, jsp:text и jsp:output динамически генерируют XML-структуры.
  • 🤖 Модернизация ИИ: Искусственный интеллект помогает переработать устаревший код действий JSP и адаптировать его к современным фреймворкам.

Теги действий JSP

Что такое тег действия JSP?

JSP Action Tags используют конструкции XML-синтаксиса для управления поведением сервлет-движка. Разработчики могут динамически вставлять файл и повторно использовать его. JavaКомпоненты Bean перенаправляют пользователя на другую страницу и выполняют аналогичные операции во время выполнения с помощью тегов действий JSP, таких как include и forward. В отличие от директив, теги действий переоцениваются каждый раз при обращении к странице, что делает их идеальными для динамического поведения во время обработки запроса.

Синтаксис:

<jsp:action_name attribute="value" />

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

Список часто используемых тегов действий в JSP

В JSP существует 11 типов стандартных тегов действий, вот их полный список.

Имя тега действия Синтаксис Описание
jsp: useBean Используется для вызова и использования компонентов на странице JSP.
jsp: включить <jsp:include page=”page URL” flush=”true/false” /> Включает другой JSP-файл в текущий файл во время обработки запроса.
jsp: setProperty Устанавливает свойство компонента.
jsp: getProperty Извлекает свойство компонента и преобразует его в строку для вывода.
jsp: вперед Перенаправляет запрос на другую JSP или статическую страницу.
jsp: плагин Представляет Java компоненты, такие как апплеты или компоненты, в JSP и автоматически генерирует теги.
jsp: body Определяет элементы XML, которые генерируются динамически во время обработки запроса.
jsp: текст текст шаблона Используется для вставки текста шаблона на страницы JSP, содержащие только текст и выражения EL.
jsp: param Передает параметры в действие jsp:plugin для добавления дополнительных данных.
jsp: атрибут Определяет атрибуты XML, которые генерируются динамически.
jsp:вывод Указывает декларацию XML или DOCTYPE, которая будет использоваться в выходных данных.

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

jsp:useBean Action Tag

  • Это имя действия используется, когда вы хотите использовать JavaКомпоненты (Beans) на JSP-странице.
  • С помощью этого тега вы можете легко вызвать bean-компонент и повторно использовать серверные компоненты.

Синтаксис jsp:useBean:

<jsp:useBean id="" class="" />

Здесь id обозначает идентификатор данного бина, а class — полный путь к классу бина.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action JSP1</title>
</head>
<body>
<jsp:useBean id="name" class="demotest.DemoClass">
</body>
</html>

Расшифровка кода:

Code Линия 10: В приведенном выше коде используются «идентификатор бина» и «путь к классу» бина.

jsp:include Action Tag

  • Параметр `jsp:include` используется для вставки JSP-файла в другой файл во время обработки запроса, аналогично оператору `include`. Директивы.
  • Он добавляется на этапе обработки запроса, что означает, что включенное содержимое оценивается каждый раз при запросе страницы.

Синтаксис jsp:include:

<jsp:include page="page URL" flush="true/false">

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

В Action_jsp2 (Code В строке 10 мы включаем файл date.jsp.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Date Guru JSP</title>
</head>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

Дата.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>
Today's date: <%= new java.util.Date().toLocaleString()%>
</p>
</body>
</html>

Расшифровка кода:

Action_jsp2.jsp

Code Линия 10: В первом файле мы включаем файл date.jsp в action_jsp2.jsp.

Дата.jsp:

Code Линия 11: В строке 11 файла date.jsp мы выводим сегодняшнюю дату.

При выполнении кода будет получен следующий результат.

jsp: включить

Выход:

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

jsp:setProperty Action Tag

  • Это стандартное действие в JSP используется для установки свойства объекта.
  • Перед установкой свойства необходимо определить бин.

Синтаксис:

<jsp:setProperty name="" property="" >

Здесь name определяет bean-компонент, свойство которого устанавливается, а property — это свойство, которое вы хотите установить. Вы также можете установить атрибуты value и param. Здесь value не является обязательным и определяет значение, которое присваивается свойству. Здесь param — это имя параметра запроса, с помощью которого можно получить значение. Пример setProperty будет продемонстрирован ниже с помощью getProperty.

jsp:getProperty Action Tag

  • Это действие используется для получения свойства объекта.
  • Эта функция преобразует свойство в строку и, наконец, вставляет её в выходные данные.

Синтаксис:

<jsp:getProperty name="" property="" >

Здесь имя — это объект, из которого необходимо получить свойство, и этот объект должен быть определен. Атрибут свойства — это имя свойства объекта, которое необходимо получить.

Пример setProperty и getProperty:

TestBean.java:

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	private String msg = "null";
	
	public String getMsg() {
		return msg;
	}
	
	public void setMsg(String msg) {
		this.msg = msg;
	}
}

Action_jsp3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action 3</title>
</head>
<body>
<jsp:useBean id="GuruTest" class="demotest.TestBean" />
<jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" />
<jsp:getProperty name="GuruTest" property="msg" />
</body>
</html>

Расшифровка кода:

TestBean.java:

Code Линия 5TestBean реализует класс Serializable. Это класс-бин с геттерами и сеттерами в коде.

Code Линия 7Здесь мы принимаем значение "null" для закрытой строковой переменной msg.

Code Строка 9-14Здесь мы используем геттеры и сеттеры для переменной «msg».

Action_jsp3.jsp

Code Линия 10: Здесь мы используем тег “useBean”, который указывает на bean-компонент (TestBean), который должен использоваться в этом JSP-классе.

Code Линия 11: Здесь мы устанавливаем значение свойства msg для компонента TestBean как "GuruУчебное пособие».

Code Линия 12: Здесь, используя метод getProperty, мы получаем значение свойства msg для бина TestBean (GuruУчебное пособие), которое отображается в выходных данных.

При выполнении приведенного выше кода вы получите следующий результат:

jsp: getProperty

Выход:

В этом примере, используя TestBean, мы устанавливаем свойство «msg» с помощью setProperty и получаем значение свойства с помощью getProperty в виде "GuruУчебное пособие».

jsp:forward Action Tag

Тег действия jsp:forward используется для переадресации запроса на другую JSP-страницу или любую статическую страницу.

Здесь запрос может быть перенаправлен без параметров или с параметрами.

Синтаксис:

<jsp:forward page="value">

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Action_jsp41.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP1</title>
</head>
<body>
<jsp:forward page="jsp_action_42.jsp" />
</body>
</html>

Jsp_action_42.jsp

Guru Action JSP2</title>
</head>
<body>
<a>This is after forward page</a>
</body>
</html>

Расшифровка кода:

Action_jsp41.jsp

Code Линия 10: Здесь мы используем действие forwardJSP для переадресации запроса на страницу, указанную в атрибуте, а именно jsp_action_42.jsp.

Jsp_action_42.jsp

Code Линия 10: После вызова action_jsp41.jsp запрос перенаправляется на эту страницу, и мы получаем вывод "Это страница после переадресации".

При выполнении приведенного выше кода мы получаем следующий результат.

jsp: вперед

Выход:

Мы вызываем action_jsp41.jsp, но запрос перенаправляется на jsp_action_42.jsp, и на этой странице мы получаем вывод "Это после переадресации страницы".

jsp:plugin Action Tag

  • Он используется для ознакомления Java компоненты в JSP, где Java Компоненты могут представлять собой либо апплет, либо компонент (bean).
  • Он определяет браузер и добавляет или теги в файл.

Синтаксис:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Здесь тип указывает либо на объект, либо на bean-компонент.
  • Code указывает имя класса апплета или компонента.
  • Codeоснование содержит основание URL содержит файлы классов.

jsp:param Action Tag

  • Это дочерний объект объекта плагина, описанного выше.
  • Он должен содержать одно или несколько действий для предоставления дополнительных параметров.

Синтаксис:

<jsp:params>
<jsp:param name="val" value="val"/ >
</jsp:params>

Пример плагина и параметра:

Action_jsp5.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action guru jsp5</title>
</head>
<body>
<jsp:plugin type="bean" code="Student.class" codebase="demotest.Student">
  <jsp:params>
     <jsp:param name="id" value="5" />
     <jsp:param name="name" value="guru" />
  </jsp:params>
</jsp:plugin>
</body>
</html>

Студент.java

package demotest; 

import java.io.Serializable;

public class Student implements Serializable {
	
	public String getName () { 
		return name; 
	}
	public void setName (String name) {
		this.name = name;
	}
	public int getId() { 
		return id; 
	} 
	public void setId (int id) { 
		this.id = id; 
	} 
	private String name = "null"; 
	private int id = 0;
	
}

Расшифровка кода:

Action_jsp5.jsp

Code Линия 10: Здесь мы используем объект jsp:plugin, который принимает три атрибута.

  • Тип – в данном случае это боб.
  • Code – имя файла.
  • Codebase – путь с именем пакета.

Code Линия 11-14: Здесь мы берём объект jsp:params, внутри которого находится дочерний объект param с атрибутами name и value, и устанавливаем значения id и name в этих атрибутах.

Студент.java

Code 7-17: Для переменных id и name мы используем геттеры и сеттеры.

Code 19-20: Мы инициализируем переменные id и name.

Здесь мы получим вывод в случае, если заданные значения параметра будут использоваться в компоненте Student. В этом случае вывода не будет, поскольку мы просто устанавливаем и получаем значения параметра, но никуда их не выводим.

jsp:body Action Tag

  • Этот тег используется для динамического определения XML-кода, где Elements может генерироваться во время выполнения запроса, а не во время компиляции.
  • Он определяет XML-код, который генерируется динамически в виде тела элемента.

Синтаксис:

<jsp:body></jsp:body>

Здесь мы размещаем XML-тег body внутри этих тегов.

jsp:attribute Action Tag

  • Этот тег используется для динамического определения XML-кода, при котором элементы могут генерироваться во время запроса, а не во время компиляции.
  • Он определяет атрибут XML, который будет генерироваться динамически.

Синтаксис:

<jsp:attribute></jsp:attribute>

Здесь мы пишем тег атрибута XML.

Пример тела и атрибута:

Action_jsp6.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP6</title>
</head>
<body>
<jsp:element name="GuruXMLElement">
<jsp:attribute name="GuruXMLattribute">
Value
</jsp:attribute>
<jsp:body>Guru XML</jsp:body>
</jsp:element>
</body>
</html>

Расшифровка кода:

Code Линия 10: Здесь мы определяем элемент, который генерируется динамически. XMLи его имя будет GuruXMLElement.

Code Линия 11-13: Здесь мы определяем атрибут, который будет XML-атрибутом динамически генерируемого XML-файла.

Code Линия 14: Здесь мы выполняем действие «Тело», в ходе которого пишем XML-текст, который будет генерироваться динамически.

При выполнении приведенного выше кода вы получите следующий результат:

jsp: атрибут

Выход:

Здесь мы получаем результат из тега <body> сгенерированного XML-файла.

jsp:text Action Tag

  • Он используется для вставки шаблонного текста в JSP-страницы.
  • Его тело не содержит никаких других элементов и содержит только текст и выражения EL.

Синтаксис:

<jsp:text>template text</jsp:text>

Здесь под текстом-шаблоном подразумевается только текст-шаблон (который может представлять собой любой общий текст, который необходимо вывести на JSP-страницу) или любой другой текст-шаблон. EL выражение.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Action_jsp7.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP7</title>
</head>
<body>
<jsp:text>Guru Template Text</jsp:text>
</body>
</html>

Расшифровка кода:

Code Линия 10: Здесь мы используем текстовый объект для печати текста-шаблона.

Когда вы выполните приведенный выше код, вы получите следующий результат.

jsp: текст

Выход:

Мы получаем Guru Шаблонный текст, который размещается внутри объекта действия «Текст».

jsp:output Action Tag

  • Это указывает на XML-декларацию или декларацию DOCTYPE для JSP.
  • XML-декларация и параметр DOCTYPE объявляются в результате выполнения программы.

Синтаксис:

<jsp:output doctype-root-element="" doctype-system="">

Здесь doctype-root-element указывает корневой элемент XML-документа в формате DOCTYPE. Doctype-system указывает тип документа, который генерируется в выходных данных, и представляет собой системный литерал.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP8</title>
</head>
<body>
<jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
</body>
</html>

Расшифровка кода:

Code Линия 10: Здесь мы используем объект действия вывода для генерации DOCTYPE, и внутри системы он будет сгенерирован в следующем формате:

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

Часто задаваемые вопросы (FAQ)

JSP Action Tags — это элементы в стиле XML, которые управляют поведением сервлет-движка во время обработки запросов. Они позволяют разработчикам включать файлы, перенаправлять запросы и использовать JavaСоздаёт компоненты, встраивает апплеты и динамически генерирует XML-вывод внутри JSP-страницы.

Директивы обрабатываются один раз во время перевода страницы и влияют на общую структуру страницы. Теги действий переоцениваются при каждом запросе, что делает их подходящими для динамического поведения, такого как включение контента, переадресация запросов и работа с другими элементами. JavaБиблиотечные компоненты обрабатываются во время выполнения программы.

Используйте jsp:include, когда необходимо объединить контент с другой страницы с текущим ответом, например, заголовки или нижние колонтитулы. Используйте jsp:forward, когда управление должно быть полностью передано другому ресурсу, и текущая страница не должна выводить никакой дополнительной информации.

jsp:useBean создает экземпляр или находит объект JavaОбъект находится в заданной области видимости. Метод jsp:setProperty присваивает значение свойству объекта, а метод jsp:getProperty считывает значение свойства и записывает его в ответ в виде строки, обеспечивая четкое разделение между логикой представления и логикой объекта.

jsp:body и jsp:attribute определяют динамические тела и атрибуты XML-элементов. jsp:text записывает текст шаблона и выражения EL, а jsp:output управляет объявлением XML или DOCTYPE, создаваемым при отрисовке JSP-ответа.

Искусственный интеллект интегрируется в приложения JSP и JEE посредством REST-запросов к API моделей, встроенных чат-помощников и виджетов рекомендаций, отображаемых на страницах JSP. ИИ также помогает генерировать шаблонный код JSP, предлагать использование тегов действий и проверять структуру компонентов (bean wiring) во время разработки.

Да. Инструменты с поддержкой ИИ анализируют устаревший JSP-код, выявляют шаблоны тегов действий и предлагают варианты рефакторинга для современных фреймворков, таких как Spring MVC, Thymeleaf или REST, а также для одностраничных приложений. Они также генерируют тесты миграции, отчеты о зависимостях и пошаговые планы рефакторинга.

Подведем итог этой публикации следующим образом: