Active Server Pages,ActiveServerPages+,ASP,ASP+,aspx,VBScript,IIS,internet,intranet,programming,programowanie,XML,Extensible Markup Language,kurs,opis,HTML,Hypertext Markup Language,JScript,JavaScript,wyszukiwarka,znajdz,instrukcja,Stelmik,Stelmi,free,darmo,zadarmo,free,serwer,server,www,konta,PHP,perl,klient,uslugi,asp,sklep internetowy,sklepy internetowe,e-sklep,esklep,tworzenie stron internetowych,strony internetowe,strony www,tworzenie stron www,strony internetowe,web page,webpage,creating,Krzysztof Stelmach,Krzysztof,Stelmach,www.stelmach.info,www.asp.z.pl
 
Create your own social network!
IP: 18.205.109.152 
 
 JAVA SERVER PAGES / DYREKTYWY
Szukaj:  
Pon, 06.07.2020r.
KURSY » języki - serwer » Java Server Pages » Dyrektywy
 

Dyrektywy w JSP dotyczą ogólnie struktury klasy servletu. Zazwyczaj przyjmują następującą formę:

<%@ dyrektywa atrybut="wartosc" %>

Jeśli zaś istnieje potrzeba podania kilku atrybutów dla pojedynczej dyrektywy należy posłużyć się następującym przkładem:

<%@ dyrektywa atrybut_1="wartosc_1"
atrybut_2="wartosc_2"
...
atrybut_N="wartosc_N" %>

Istnieję trzy główne typy dyrektyw: page, która pozwala m.in. importować klasy, określić jezyk użyty w skrypcie, przerabiać super-klasę servletu, itp; oraz include, która umożliwia umieścić plik wewnątrz klasy servletu w momencie, gdy plik JSP jest przetwarzany na servlet. Specyfikacja JSP wśród dyrektyw wymienia także dyrektywę taglib, która wskazuje lokalizację pliku z biblioteką opisującą "nowe" znaczniki oraz przedrostek umożliwiający ich rozpoznanie.

1. Dyrektywa page

Dyrektywa page pozwala definiować jeden lub więcej czułych na wielkość liter atrybutów. Oto one:

  • import="pakiet.klasa" lub import="pakiet.klasa_1,...,pakiet.klasa_N". W ten sposób można określić jakie pakiety powinny być importowane. Na przykład:
    <%@ page import="java.util.*" %>
    Atrybut import jest jedynym atrybutem, który może pojawić się wiele razy.
  • contentType="Typ MIME" lub
    contentType="Typ MIME; charset=Character-Set"
    Atrybut określa typ MIME danych wyjściowych. Domyślną wartością jest text/html. Oto przykład użycia dyrektywy:
    <%@ page contentType="text/plain" %>
    co ma podobne znaczenie jak użycie w przypadku skrypletu
    <% response.setContentType("text/plain"); %>
  • isThreadSafe="true|false". Wartość true (domyślna) wskazuje na normalne wykonywanie servletu, gdzie wielokrotne wywołania mogą być wykonane równocześnie przez pojedynczą instancję servletu, zakładając, że autor zsynchronizował dostęp do zmiennych instancji. Wartość false wskazuje, że servlet powinien implementować SingleThreadModel, albo z seryjnymi wywołaniami albo jednoczesnymi wywołaniami oddzielnych instancji servletu.
  • session="true|false". Wartość true (domyślna) wskazuje, że zmienna predefiniowana session (typu HttpSession) powinna być przyłączona do sesji aktywnej, w przeciwnym przypadku powinna zostać utworzona nowa sesja i podpięta do niej. Wartość false wskazuje, że nie będzie używana żadna sesja, a próba dostępu do zmiennej session wygeneruje błąd w czasie gdy strona JSP jest przetwarzana na servlet.
  • buffer="rozmiarkb|none". Określa rozmiar bufora dla JspWriter out. Domyślnie rozmiar ustawiany jest przez serwer, jednak nie może być mniejszy niż 8kb.
  • autoflush="true|false". Wartość true (domyślna), wskazuje, że bufor powinien być "zwrócony", kiedy jest pełny. Wartość false, rzadko używana, wskazuje, że w przypadku przepełnienia bufora powinien pojawić się wyjątek. Wartość false jest niedopuszczalna w przypadku, gdy atrybut buffer="none".
  • extends="pakiet.klasa". Wskazuje super-klasę servletu, która będzie wygenerowana. Należy używać jego z dużą ostrożnością, dopóki serwer używa już zwyczajnej super-klasy.
  • info="wiadomosc". Definiuje łańcuch, który może być pobrany przez metodę getServletInfo.
  • errorPage="URL". Określa stronę JSP, która powinna obsłużyć wystąpiony wyjątek, który został wyrzucony, ale nie przechwycony na bieżącej stronie.
  • isErrorPage="true|false". Wskazuje czy bieżąca strona ma być czy nie jako strona wystąpionego błędy dla innej strony JSP. Domyślną wartością jest false.
  • language="java". Określa język użyty na stronie. Obecnie wartość java jest wartością domyślną i jedyną możliwą.

Składnia XML służąca do definiowania dyrektyw jest

<jsp:dyrektywa.typDyrektywy atrybut=wartosc />

Na przykład, ekwiwalentem XML dla

<%@ page import="java.util.*" %>

jest

<jsp:directive.page import="java.util.*" />

2. Dyrektywa include

Dyrektywa pozwalająca dołączać pliki w czasie przetwarzania strony JSP na servlet. Wygląda ona następująco:

<%@ include file="względny URL" %>

Powyższy URL określa ścieżkę do załączanego pliku względem bieżącej strony JSP, jednak umieszczając '/' na początku informuje sie system żeby podany URL odnosił się do katalogu startowego serwera WWW. Zawartość zalączanego pliku jest traktowana jako normalny tekst JSP, i zatem może zawierać statyczny HTML, elementy skryptu, dyrektywy, oraz akcje.

Dla przykładu, wiele stron załącza miewielkie menu nawigacyjne na każdej stronie. Z powodu problemów związanych z ramkami HTML, to rozwiazanie jest często stosowane poprzez umieszczenie niewielkiej tabelki HTML w gornej, dolnej lub bocznej cześci strony, powtarzającej się na każdej ze stron. Dyrektywa include jest jednym z prostych tego typu rozwiązań, oszczędzając autorom stron, w przypadku jakiejkolwiek zmiany w menu, czasu oraz klopotu związanego z utrzymaniem oraz z kopiowaniem w/w kodu HTML do każdego pliku strony. Oto przykładowe rozwiazanie z użyciem omawianej dyrektywy:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Użycie dyrektywy include - przykład</TITLE>
<meta name="author" content="stelmi@friko2.onet.pl">
<meta name="keywords" content="...">
<meta name="description" content="...">
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body>
<%@ include file="/menunawigacyjne.html" %>

<!-- Zawartość strony ... -->

</body>
</html>

Należy zauważyć, że jeśli dyrektywa include dołączy pliku w czasie, gdy strona jest przetwarzana na servlet, jesli menu navigacyjne (załączany plik) ulegnie zmianie, to należy ponownie przetworzyć wszystkie strony JSP używające tego menu. To jest dobry kompromis w sytuacji, kiedy menu nawigacyjne nie będzie ulegało częstej zmianie, i będzie potrzeba aby proces załączania był jak najbardziej wydajny. Jeśli załączane pliki będą zmieniały się dość często, istnieje możliwość użycia w zamian akcji jsp:include. Akcja jsp:include załacza plik JSP w momencie wywołania, zostało to omówione w części Akcje w JSP.

3. Dyrektywa taglib

Przykładowe użycie dyrektywy taglib:

<%@ taglib url="/mojeznaczniki" prefix="moje" %>

Teraz w kodzie strony JSP można ich użyć (zakładając, że w w/w bibliotece znajduje się znacznik mojedane):

<moje:mojedane>
...
</moje:mojedane>

 
do góry ^ 
Jesteś 2623776 odwiedzającym
 
 
Copyright © 2003-2020 Krzysztof Stelmach, Wszelkie prawa zastrzeżone.
 
System reklamy Test