Dyrektywy JSP: Strona, Uwzględnij & Samouczek Taglib

Spisie treści:

Anonim

Co to są dyrektywy JSP?

  • Dyrektywy JSP to komunikaty wysyłane do kontenera JSP. Dostarczają globalnych informacji o całej stronie JSP.
  • Dyrektywy JSP służą do wydawania specjalnych instrukcji kontenerowi w celu przetłumaczenia strony JSP na kod serwletu.
  • W fazie cyklu życia JSP, JSP musi zostać przekonwertowane na serwlet, który jest fazą translacji.
  • Przekazują one kontenerowi instrukcje dotyczące obsługi niektórych aspektów przetwarzania JSP
  • Dyrektywy mogą mieć wiele atrybutów oddzielonych przecinkami jako pary klucz-wartość.
  • W JSP dyrektywa jest opisana w tagach <% @%>.

Składnia dyrektywy:

<%@ directive attribute %>

Istnieją trzy rodzaje dyrektyw:

  1. Dyrektywa strony
  2. Włącz dyrektywę
  3. Dyrektywa Taglib

Każdy z nich został szczegółowo opisany poniżej z przykładami:

W tym samouczku nauczysz się -

  • Dyrektywa JSP Page
  • Dyrektywa JSP Include
  • Dyrektywa JSP Taglib

Dyrektywa JSP Page

Składnia dyrektywy Page:

<%@ page… %>
  • Zawiera atrybuty, które są stosowane do całej strony JSP.
  • Definiuje atrybuty zależne od strony, takie jak język skryptowy, strona błędu i wymagania dotyczące buforowania.
  • Służy do dostarczania instrukcji do kontenera, który dotyczy bieżącej strony JSP.

Poniżej znajduje się lista atrybutów powiązanych z dyrektywą strony:

  1. Język
  2. Rozciąga się
  3. Import
  4. Typ zawartości
  5. info
  6. sesja
  7. isThreadSafe
  8. autoflush
  9. bufor
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  13. isELIgonored

Więcej szczegółów na temat każdego atrybutu

  1. język : określa język programowania (język bazowy) używany na stronie.

    Składnia języka:

    <%@ page language="value" %>

    Tutaj wartością jest język programowania (język bazowy)

Przykład:

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

Objaśnienie kodu: W powyższym przykładzie wartością języka atrybutu jest Java, która jest językiem bazowym w tym przypadku. W związku z tym kod w tagach wyrażeń zostałby skompilowany za pomocą kompilatora java.

  1. Rozszerzenia : ten atrybut służy do rozszerzania (dziedziczenia) klasy, tak jak robi to JAVA

Składnia rozszerzeń:

<%@ page extends="value" %>

Tutaj wartość reprezentuje klasę, z której ma zostać odziedziczona.

Przykład:

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

Wyjaśnienie kodu: W powyższym kodzie JSP rozszerza DemoClass, który jest w pakiecie demotest i rozszerzy wszystkie funkcje klasy.

  1. Import : Ten atrybut jest najczęściej używanym atrybutem w atrybutach dyrektywy strony. Służy do informowania kontenera, aby importował inne klasy java, interfejsy, wyliczenia itp. Podczas generowania kodu serwletu. Jest podobny do instrukcji importu w klasach java, interfejsach.

Składnia importu :

<%@ page import="value" %>

Tutaj wartość wskazuje klasy, które mają zostać zaimportowane.

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie importujemy klasę Date z pakietu java.util (wszystkie klasy narzędzi) i może ona wykorzystywać wszystkie metody poniższej klasy.

  1. contentType :
  • Definiuje schemat kodowania znaków, tj. Służy do ustawiania typu treści i zestawu znaków odpowiedzi
  • Domyślny typ contentType to „text / html; charset = ISO-8859-1”.

Składnia contentType:

<%@ page contentType="value" %>

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie typ treści jest ustawiony jako text / html, ustawia kodowanie znaków dla JSP i dla wygenerowanej strony odpowiedzi.

  1. info
  • Definiuje łańcuch, do którego można uzyskać dostęp za pomocą metody getServletInfo ().
  • Ten atrybut służy do ustawiania opisu serwletu.

Składnia informacji:

<%@ page info="value" %>

Tutaj wartość reprezentuje informacje o serwlecie.

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie ciąg "Guru dyrektywy JSP" może zostać pobrany przez interfejs serwletu przy użyciu metody getServletInfo ()

  1. Sesja
  • Strona JSP domyślnie tworzy sesję.
  • Czasami nie potrzebujemy tworzenia sesji na JSP, dlatego możemy w takim przypadku ustawić ten atrybut na false. Domyślną wartością atrybutu sesji jest true i sesja jest tworzona.

    Gdy ma wartość false, możemy wskazać kompilatorowi, aby domyślnie nie tworzył sesji.

Składnia sesji:

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

W tym przypadku atrybut sesji można ustawić na wartość true lub false

Przykład:

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

Wyjaśnienie kodu:

W powyższym przykładzie atrybut sesji jest ustawiony na „false”, dlatego wskazujemy, że nie chcemy tworzyć żadnej sesji na tym JSP

  1. isThreadSafe:
  • Definiuje model wątkowania dla wygenerowanego serwletu.
  • Wskazuje poziom bezpieczeństwa wątków zaimplementowany na stronie.
  • Jego domyślną wartością jest prawda, a więc równoczesna
  • Możemy użyć tego atrybutu do zaimplementowania interfejsu SingleThreadModel w wygenerowanym serwlecie.
  • Jeśli ustawimy go na false, zaimplementuje SingleThreadModel i będzie mógł uzyskać dostęp do wszystkich udostępnionych obiektów i może spowodować niespójność.

Składnia isThreadSafe:

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

Tutaj prawda lub fałsz oznacza, że ​​synchronizacja jest obecna, a następnie ustawia ją jako prawdę i ustawia jako fałsz.

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie isThreadSafe jest ustawione na „true”, dlatego synchronizacja zostanie wykonana i można użyć wielu wątków.

  1. AutoFlush:

Ten atrybut określa, że ​​buforowane dane wyjściowe powinny być opróżniane automatycznie lub nie, a domyślną wartością tego atrybutu jest prawda.

Jeśli wartość jest ustawiona na false, bufor nie zostanie opróżniony automatycznie, a jeśli jest pełny, otrzymamy wyjątek.

Gdy bufor nie ma, to fałsz jest nieuzasadniony i nie ma buforowania, więc zostanie opróżniony automatycznie.

Składnia autoFlush:

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

Tutaj prawda / fałsz określa, czy buforowanie musi być wykonane, czy nie

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie autoflush jest ustawiony na false i dlatego buforowanie nie zostanie wykonane i ręcznie opróżni dane wyjściowe.

  1. Bufor:
  • Za pomocą tego atrybutu wyjściowy obiekt odpowiedzi może być buforowany.
  • Możemy zdefiniować rozmiar buforowania do wykonania za pomocą tego atrybutu, a domyślny rozmiar to 8KB.
  • Nakazuje apletowi zapisanie bufora przed zapisaniem do obiektu odpowiedzi.

Składnia bufora:

<%@ page buffer="value" %>

Tutaj wartość reprezentuje rozmiar bufora, który ma zostać zdefiniowany. Jeśli nie ma bufora, możemy zapisać jako brak, a jeśli nie podamy żadnej wartości, domyślnie jest to 8KB

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie rozmiar bufora jest wymieniony jako 16KB, przy czym bufor miałby taki rozmiar

  1. isErrorPage:
  • Wskazuje, że strona JSP, która ma stronę errorPage, zostanie sprawdzona na innej stronie JSP
  • Każdy plik JSP zadeklarowany z atrybutem „isErrorPage” może następnie odbierać wyjątki z innych stron JSP, które mają strony błędów.
  • Wyjątki są dostępne tylko dla tych stron.
  • Wartość domyślna to false.

Składnia isErrorPage:

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

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie isErrorPage jest ustawione jako true. W związku z tym sprawdzi, czy wszystkie inne strony JSP mają ustawiony atrybut errorPage (opisany w następnym atrybucie) i może obsługiwać wyjątki.

  1. Kodowanie strony:
Atrybut „pageEncoding” definiuje kodowanie znaków na stronie JSP.

Wartość domyślna jest określana jako „ISO-8859-1”, jeśli nie określono innego.

Składnia pageEncoding:

<%@ page pageEncoding="vaue" %>

Tutaj wartość określa wartość zestawu znaków dla JSP

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie "pageEncoding" zostało ustawione na domyślny zestaw znaków ISO-8859-1

  1. ErrorPage:
Ten atrybut służy do ustawiania strony błędu dla strony JSP, jeśli strona JSP zgłasza wyjątek, a następnie przekierowuje do strony wyjątków.

Składnia errorPage:

<%@ page errorPage="value" %>

Tutaj wartość reprezentuje błędną wartość strony JSP

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie do obsługi wyjątków służy errroHandler.jsp

  1. isELIgnored:
  • IsELIgnored to atrybut flagi, w którym musimy zdecydować, czy ignorować tagi EL, czy nie.
  • Jego typ danych to java enum, a wartość domyślna to false, dlatego EL jest domyślnie włączone.

Składnia isELIgnored:

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

Tutaj prawda / fałsz reprezentuje wartość EL, niezależnie od tego, czy należy ją zignorować, czy nie.

Przykład:

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

Wyjaśnienie kodu:

W powyższym kodzie isELIgnored jest true i dlatego język wyrażeń (EL) jest tutaj ignorowany.

W poniższym przykładzie używamy czterech atrybutów (linia kodu 1-2)

Przykład z czterema atrybutami

<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%> Dyrektywa Guru JSP1  Data: <% = new java.util.Date ()%>

Wyjaśnienie kodu:

Linia kodu 1-2: Tutaj zdefiniowaliśmy cztery atrybuty, tj

  • Język: jest ustawiony jako Java jako język programowania
  • contentType: ustaw jako text / html, aby poinformować kompilator, że html musi zostać sformatowany
  • pageEncoding: w tym atrybucie ustawiany jest domyślny zestaw znaków
  • isELIgnored: Tag wyrażenia jest fałszywy, dlatego nie jest ignorowany

Linia kodu 3: Tutaj użyliśmy atrybutu importu i importujemy „klasę daty”, która pochodzi z pakietu narzędzi Java, i próbujemy wyświetlić w kodzie bieżącą datę.

Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe

Dane wyjściowe :

  • Data to: Bieżąca data przy użyciu metody daty klasy Date

Dyrektywa JSP Include

  • Dyrektywa JSP „include” (linia kodowa 8) służy do dołączania jednego pliku do drugiego
  • Ten dołączony plik może być HTML, JSP, plikami tekstowymi itp.
  • Jest również przydatny do tworzenia szablonów z widokami użytkowników i dzielenia stron na akcje nagłówka, stopki i paska bocznego.
  • Zawiera plik w fazie tłumaczenia

Składnia dyrektywy include:

<%@ include… .%>

Przykład:

Dyrektywa_jsp2.jsp (plik główny)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "Directive_header_jsp3.jsp"%> Dyrektywa Guru JSP2  To jest główny plik 

Directive_header_jsp3.jsp (który jest zawarty w głównym pliku)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Plik nagłówkowy: <% int count = 1; liczyć ++;out.println (liczba);%>:

Wyjaśnienie kodu:

Dyrektywa_jsp2.jsp:

Linia kodu 3: W tym kodzie używamy tagów include, w których dołączamy plik Directive_header_jsp3.jsp do pliku głównego (_jsp2.jsp) i pobieramy dane wyjściowe zarówno pliku głównego, jak i dołączonego.

Dyrektywa_header_jsp3.jsp:

Linia kodu 11-12: Wzięliśmy liczbę zmiennych zainicjowaną na 1, a następnie zwiększyliśmy ją. To da wynik w głównym pliku, jak pokazano poniżej.

Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:

Wynik:

  • Dane wyjściowe to Plik nagłówkowy: 2: To jest plik główny
  • Dane wyjściowe są wykonywane z pliku dyrektywy_jsp2.jsp, podczas gdy plik z dołączoną dyrektywą_header_jsp3.jsp zostanie skompilowany jako pierwszy.
  • Po zakończeniu dołączania pliku główny plik jest wykonywany, a wynik będzie pochodził z pliku głównego „To jest plik główny”. Otrzymasz wynik jako „Plik nagłówkowy: 2” z _jsp3.jsp i „To jest plik główny” z _jsp2.jsp.

Dyrektywa JSP Taglib

  • Dyrektywa JSP taglib służy do zdefiniowania biblioteki tagów z przedrostkiem "taglib", którego możemy używać w JSP.
  • Więcej szczegółów zostanie omówionych w sekcji Niestandardowe znaczniki JSP
  • Dyrektywa JSP taglib jest używana na stronach JSP korzystających ze standardowych bibliotek znaczników JSP
  • Używa zestawu niestandardowych znaczników, identyfikuje lokalizację biblioteki i zapewnia sposoby identyfikacji niestandardowych znaczników na stronie JSP.

Składnia dyrektywy taglib:

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

Tutaj atrybut „uri” jest unikalnym identyfikatorem w deskryptorze biblioteki znaczników, a atrybut „prefiks” jest nazwą znacznika.

Przykład:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "gurutag" uri = "http://java.sun.com/jsp/jstl/core"%> Dokument JSP dotyczący dyrektywy guru 

Wyjaśnienie kodu:

Linia kodu 3: Tutaj "taglib" jest zdefiniowane z atrybutami uri i prefiksem.

Linia kodu 9: „gurutag” to zdefiniowany niestandardowy tag, którego można używać w dowolnym miejscu