Директиви JSP: Сторінка, Включити & Підручник з Тагліба

Що таке директиви JSP?

  • Директиви JSP - це повідомлення до контейнера JSP. Вони надають загальну інформацію про цілу сторінку JSP.
  • Директиви JSP використовуються для надання спеціальних інструкцій контейнеру для перекладу JSP в код сервлета.
  • На фазі життєвого циклу JSP JSP потрібно перетворити на сервлет, який є фазою перекладу.
  • Вони дають інструкції контейнеру про те, як обробляти певні аспекти обробки JSP
  • Директиви можуть мати багато атрибутів, розділених комами, як пари ключ-значення.
  • У JSP директива описана в тегах <% @%>.

Синтаксис директиви:

<%@ directive attribute %>

Існує три типи директив:

  1. Директива сторінки
  2. Включити директиву
  3. Директива Тагліба

Кожен з них детально описаний нижче з прикладами:

У цьому підручнику ви дізнаєтесь -

  • Директива JSP Page
  • Директива JSP Include
  • Директива JSP Тагліб

Директива JSP Page

Синтаксис директиви Page:

<%@ page… %>
  • Він надає атрибути, які застосовуються до всієї сторінки JSP.
  • Він визначає залежні від сторінки атрибути, такі як мова сценаріїв, сторінка помилок та вимоги до буферизації.
  • Він використовується для надання інструкцій контейнеру, який відноситься до поточної сторінки JSP.

Нижче наведено його список атрибутів, пов'язаних з директивою сторінки:

  1. Мову
  2. Подовжує
  3. Імпорт
  4. contentType
  5. інформація
  6. сесія
  7. isThreadSafe
  8. автомивка
  9. буфер
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  13. isELIgonored

Детальніше про кожен атрибут

  1. мова : визначає мову програмування (базову мову), яка використовується на сторінці.

    Синтаксис мови:

    <%@ page language="value" %>

    Тут значенням є мова програмування (основна мова)

Приклад:

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

Пояснення коду: У наведеному вище прикладі значенням мови атрибутів є Java, яка в цьому випадку є базовою мовою. Отже, код у тегах виразів буде скомпільований за допомогою компілятора Java.

  1. Extends : Цей атрибут використовується для розширення (успадкування) класу, як це робить JAVA

Синтаксис extends:

<%@ page extends="value" %>

Тут значення представляє клас, від якого воно має бути успадковане.

Приклад:

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

Пояснення коду: У наведеному вище коді JSP розширює DemoClass, який знаходиться в пакеті demotest, і він розширить всі функції класу.

  1. Імпорт : Цей атрибут є найбільш вживаним атрибутом в атрибутах директиви сторінки. Він використовується для вказівки контейнеру імпортувати інші класи Java, інтерфейси, перерахування тощо під час генерації коду сервлета. Він подібний до операторів імпорту в класах Java, інтерфейсах.

Синтаксис імпорту :

<%@ page import="value" %>

Тут значення вказує класи, які потрібно імпортувати.

Приклад:

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

Пояснення коду:

У наведеному вище коді ми імпортуємо клас Date з пакета java.util (усі класи утиліти), і він може використовувати всі методи наступного класу.

  1. contentType :
  • Він визначає схему кодування символів, тобто використовується для встановлення типу вмісту та набору символів відповіді
  • Типом вмісту за замовчуванням є "text / html; charset = ISO-8859-1".

Синтаксис contentType:

<%@ page contentType="value" %>

Приклад:

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

Пояснення коду:

У наведеному вище коді тип вмісту встановлений як text / html, він встановлює кодування символів для JSP та для сторінки згенерованих відповідей.

  1. інформація
  • Він визначає рядок, доступ до якого можна отримати методом getServletInfo ().
  • Цей атрибут використовується для встановлення опису сервлета.

Синтаксис інформації:

<%@ page info="value" %>

Тут значення представляє інформацію про сервлет.

Приклад:

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

Пояснення коду:

У наведеному вище коді рядок "Guru Directive JSP" можна отримати за допомогою інтерфейсу сервлету за допомогою getServletInfo ()

  1. Сесія
  • Сторінка JSP за замовчуванням створює сеанс.
  • Іноді нам не потрібен сеанс для створення в JSP, і, отже, ми можемо встановити для цього атрибута значення false. Значення атрибута сеансу за замовчуванням істинне, і сеанс створюється.

    Якщо для нього встановлено значення false, тоді ми можемо вказати компілятору, що не створює сеанс за замовчуванням.

Синтаксис сеансу:

<%@ page session="true/false"%>

У цьому випадку для атрибуту сесії можна встановити значення true або false

Приклад:

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

Пояснення коду:

У наведеному вище прикладі для атрибута session встановлено значення "false", отже, ми вказуємо, що ми не хочемо створювати жодного сеансу в цьому JSP

  1. isThreadSafe:
  • Він визначає модель потоку для сформованого сервлету.
  • Це вказує на рівень безпеки потоків, реалізований на сторінці.
  • Його значення за замовчуванням істинне, тому одночасне
  • Ми можемо використовувати цей атрибут для реалізації інтерфейсу SingleThreadModel у згенерованому сервлеті.
  • Якщо ми встановимо значення false, він реалізує SingleThreadModel і може отримати доступ до будь-яких спільних об'єктів і може спричинити невідповідність.

Синтаксис isThreadSafe:

<% @ page isThreadSafe="true/false" %>

Тут true або false представляє, якщо синхронізація існує, тоді встановлюється як true і встановлюється як false.

Приклад:

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

Пояснення коду:

У наведеному вище коді для isThreadSafe встановлено значення "true", отже буде виконана синхронізація, і можна використовувати кілька потоків.

  1. Автомивка:

Цей атрибут вказує на те, що буферизований вихід повинен бути очищений автоматично чи ні, і значення за замовчуванням для цього атрибута має значення true.

Якщо для значення встановлено значення false, буфер не буде автоматично змито, а якщо він заповнений, ми отримаємо виняток.

Якщо буфера немає, тоді помилка є нелегітимною, і буферизації немає, тому вона буде автоматично очищена.

Синтаксис autoFlush:

<% @ page autoFlush="true/false" %>

Тут true / false вказує, чи потрібно робити буферизацію чи ні

Приклад:

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

Пояснення коду:

У наведеному вище коді для автоматичного змивання встановлено значення false і, отже, буферизація не виконується, і він вручну змиває вихідні дані.

  1. Буфер:
  • Використовуючи цей атрибут, вихідний об'єкт відповіді може бути буферизованим.
  • За допомогою цього атрибута ми можемо визначити розмір буферизації, а розмір за замовчуванням - 8 КБ.
  • Він спрямовує сервлет писати буфер перед записом в об'єкт відповіді.

Синтаксис буфера:

<%@ page buffer="value" %>

Тут значення представляє розмір буфера, який повинен бути визначений. Якщо буфера немає, тоді ми можемо писати як ніякий, а якщо не згадуємо жодне значення, то за замовчуванням 8 КБ

Приклад:

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

Пояснення коду:

У наведеному вище коді розмір буфера згадується як 16 КБ, де буфер має такий розмір

  1. isErrorPage:
  • Це вказує на те, що сторінку JSP, яка має errorPage, буде перевірено на іншій сторінці JSP
  • Тоді будь-який файл JSP, оголошений атрибутом "isErrorPage", може отримувати винятки з інших сторінок JSP, які мають сторінки помилок.
  • Винятки доступні лише для цих сторінок.
  • Значення за замовчуванням - false.

Синтаксис isErrorPage:

<%@ page isErrorPage="true/false"%>

Приклад:

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

Пояснення коду:

У наведеному вище коді isErrorPage встановлено як true. Отже, він перевірить, чи будь-які інші JSP мають набір атрибутів errorPage (описаний у наступному атрибуті), і він може обробляти винятки.

  1. Кодування сторінки:
Атрибут "pageEncoding" визначає кодування символів для сторінки JSP.

За замовчуванням вказано "ISO-8859-1", якщо не вказано будь-яке інше.

Синтаксис кодування сторінки:

<%@ page pageEncoding="vaue" %>

Тут значення вказує значення набору символів для JSP

Приклад:

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

Пояснення коду:

У наведеному вище коді "pageEncoding" встановлено за замовчуванням кодировку ISO-8859-1

  1. errorPage:
Цей атрибут використовується для встановлення сторінки помилки для сторінки JSP, якщо JSP видає виняток, а потім він переспрямовує на сторінку винятків.

Синтаксис errorPage:

<%@ page errorPage="value" %>

Тут значення представляє значення помилки сторінки JSP

Приклад:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>

Пояснення коду:

У наведеному вище коді для обробки винятків ми маємо errroHandler.jsp

  1. isELIgnored:
  • IsELIgnored - це атрибут прапора, де ми повинні вирішити, ігнорувати теги EL чи ні.
  • Його тип даних - java enum, а значення за замовчуванням - false, отже EL за замовчуванням увімкнено.

Синтаксис isELIgnored:

<%@ page isELIgnored="true/false" %>

Тут true / false представляє значення EL незалежно від того, слід його ігнорувати чи ні.

Приклад:

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

Пояснення коду:

У наведеному вище коді isELIgnored є істинним, а отже, мова вираження (EL) тут ігнорується.

У наведеному нижче прикладі ми використовуємо чотири атрибути (рядок коду 1-2)

Приклад із чотирма атрибутами

<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%> Директива Гуру JSP1  Дата: <% = new java.util.Date ()%>

Пояснення коду:

Рядок коду 1-2: Тут ми визначили чотири атрибути, тобто

  • Мова: В якості мови програмування встановлено Java
  • contentType: встановлюється як text / html, щоб повідомляти компілятору, що html має бути форматом
  • pageEncoding: у цьому атрибуті встановлено набір символів за замовчуванням
  • isELIgnored: Тег виразу хибний, отже, він не ігнорується

Рядок коду 3: Тут ми використали атрибут імпорту, і він імпортує "Клас дати", який є з пакета утилізації Java, і ми намагаємося відобразити поточну дату в коді.

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат

Вихід :

  • Дата: поточна дата за допомогою методу дати класу дати

Директива JSP Include

  • JSP "директива включення" (код 8) використовується для включення одного файлу в інший файл
  • Цей включений файл може бути HTML, JSP, текстовими файлами тощо.
  • Це також корисно для створення шаблонів з переглядами користувачів та розбиття сторінок на дії верхнього та нижнього колонтитула та бічної панелі.
  • Він включає файл на етапі перекладу

Синтаксис директиви include:

<%@ include… .%>

Приклад:

Directive_jsp2.jsp (основний файл)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "Directive_header_jsp3.jsp"%> Директива Гуру JSP2  Це основний файл 

Directive_header_jsp3.jsp (що входить до основного файлу)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Файл заголовка: <% int count = 1; рахувати ++;out.println (кол);%>:

Пояснення коду:

Directive_jsp2.jsp:

Рядок коду 3: У цьому коді ми використовуємо теги включення, де ми включаємо файл director_header_jsp3.jsp в основний файл (_jsp2.jsp) і отримуємо вихідні дані як основного, так і включеного файлу.

Directive_header_jsp3.jsp:

Рядок коду 11-12: Ми взяли кількість змінних, ініціалізовану до 1, а потім збільшили її. Це дасть результат у основному файлі, як показано нижче.

При виконанні наведеного вище коду ви отримуєте такий результат:

Вихід:

  • Результатом є файл заголовка: 2: це основний файл
  • Вихідні дані виконуються з файлу Directive_jsp2.jsp, тоді як включений файл Directive_header_jsp3.jsp буде скомпільований спочатку.
  • Після завершення включеного файлу виконується основний файл, і результат буде з головного файлу "Це основний файл". Отже, ви отримаєте результат у вигляді "Файл заголовка: 2" з _jsp3.jsp та "Це основний файл" з _jsp2.jsp.

Директива JSP Тагліб

  • Директива JSP taglib використовується для визначення бібліотеки тегів із "taglib" як префікс, який ми можемо використовувати в JSP.
  • Детальніше буде розглянуто в розділі Спеціальні теги JSP
  • Директива JSP taglib використовується на сторінках JSP із використанням стандартних бібліотек тегів JSP
  • Він використовує набір спеціальних тегів, визначає місце розташування бібліотеки та забезпечує засоби ідентифікації власних тегів на сторінці JSP.

Синтаксис директиви taglib:

<%@ taglib uri="uri" prefix="value"%>

Тут атрибут "uri" - це унікальний ідентифікатор у дескрипторі бібліотеки тегів, а атрибут "prefix" - це назва тегу.

Приклад:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib префікс = "gurutag" uri = "http://java.sun.com/jsp/jstl/core"%> Директива гуру JSP 

Пояснення коду:

Рядок коду 3: Тут "taglib" визначається з атрибутами uri та префіксом.

Рядок коду 9: "gurutag" - це спеціальний тег, який можна використовувати де завгодно

Цікаві статті...