Elementy skryptu JSP pozwalają umieścić kod Javy wewnątrz servletu który jest generowany z bieżącej strony JSP. Mogą one przyjąć trzy formy: - Wyrażenia w postaci <%= wyrażenie %>, które są przekazywane na wyjście (okno przeglądarki)
- Skryplety w postaci <% kod %>, które są umieszczane wewnątrz metody service servletu
- Deklaracje w postaci <%! kod %> które są umieszczane wewnątrz klasy (ciała) servletu, poza jakimikolwiek istniejącymi metodami.
Poniżej każde z nich zostaną opisane dokładniej. 1. Wyrażenia JSP Wyrażenia JSP są używane w celu umieszczenia wartości bezpośrednio na wyjściu (oknie przeglądarki). Oto przykład: <%= Wyrażenie Javy %> Wyrażenie Javy jest pobierane, konwertowane do łańcucha po czym umieszczane na stronie. Te elementy wykonywane są w czasie uruchomienia strony, kiedy jest ona wywoływana (np. przez przeglądarkę) i dlatego z tego poziomu jest dostęp do informacji na temat danego wywołania strony. Poniżej znajduje się przykład obrazujący powyższy opis Bieżący czas: <%= new java.util.Date() %> czyli w momencie wywołania strony wyświetlana jest aktualna data/czas. Dla uproszczenia wyrażeń zostało utworzone kilka zmiennych predefiniowanych, które mogą zostać użyte. Te obiekty zostaną omówione w innej części poświęconej zmiennym predefiniowanym, jednak kilka dość znaczączych z nich to: - request, czyli HttpServletRequest;
- response, czyli HttpServletResponse;
- session, czyli HttpSession związany z wywołaniem (jeśli jest)
- out, czyli PrintWriter (buforowana wersja JspWriter) używane w celu wysłania informacji na wyjście (okno przeglądarki).
Oto przykład: Twój komputer: <%= request.getRemoteHost() %> Programiści XML mogą użyć alternatywnego rozwiązania dla wyrażeń JSP: <jsp:expression> Wyrażenie Javy </jsp:expression> Należy pamiętać, że elementy XML, inaczej niż HTML, rozróżniają wielkość liter. W związku z tym należy uważać by używać małych liter, tak jak ma to miejsce w powyższym przykładzie. 2. Skryplety JSP Jeśli istnieje potrzeba wykonania czegoś bardziej złożonego niż przekazanie pojedynczej wartości (jak to miało miejsce w przypadku wyrażeń), można wykorzystać skryplety JSP. Skryplety JSP pozwalają umieścić dowolny kod wewnątrz metody servletu, który zostanie zbudowany w celu wygenerowania strony. Skryplety przyjmują następującą formę: <% Kod Javy %> Skryplety mają dostęp do tych samych zmiennych co wyrażenia. Na przykład, jeśli jest potrzeba przekazania na wyjście jakiejś wartości na wynikowej stronie można użyc w tym celu zmiennej out. <% String queryData = request.getQueryString(); out.println("Dołączone dane typu GET: " + queryData); %> Kod wewnątrz skrypletu, np. taki jak powyższy może sąsiadować z dowolnym statycznym kodem HTML (szablon tekstowy), który znajdując się czy to przed czy za danym skrypletem, zostanie przekonwertowany na składnię Javy print. To oznacza, że skryplety nie muszą zawierać w samej składni Javy, lecz także bloki statycznego HTMLa. Przykładem może być poniższy fragment JSP zawierający szablony tekstowe jak i skryplety <% if (Math.random() < 0.5) { %> <B>Miłego</B> dnia! <% } else { %> <B>Pechowego</B> dnia! <% } %> zostanie przekonwerowane do: if (Math.random() < 0.5) { out.println("<B>Miłego</B> dnia!"); } else { out.println("<B>Pechowego</B> dnia!"); } Jeśli istnieje potrzeba użycia ciągu znaków "%>" wewnątrz skrypletu należy wpisać "%\>". Ekwiwalentem XML dla zapisu <% kod %> jest <jsp:scriptlet> kod </jsp:scriptlet> 3. Deklaracje JSP Deklaracja JSP pozwala definiować metody lub pola, które są umieszczane wewnątrz klasy servletu (poza metodą service). Oto przykład: <%! Kod Javy %> Deklaracje nie generują żadnych danych wyjściowych, one są używane łącznie z wyrażeniami JSP lub skrypletami. Dla przykładu poniżej znajduje się fragment, który wypisuje wartość liczbową odpowiadającą ilości wywołania bieżącej strony od momentu uruchomienia serwera (lub zmiany i przeładowania klasy servletu): <%! private int Licznik = 0; %> Stronę wywołano od czasu uruchomienia serwera: <%= ++Licznik %> Podobnie jak w przypadku skrypletów, jeśli istnieje potrzeba użycia ciągu znaków "%>", należy wpisać "%\>". Ekwiwalentem XML dla: <%! Kod %> jest <jsp:declaration> Kod </jsp:declaration> Autor: Krzysztof Stelmach Strona pochodzi z http://www.stelmach.info/ |