15 Lut

Java Server Pages – wstęp

Artykuł ten jest pierwszym z szeregu wpisów będącym prostym know-how dla programistów rozpoczynających prace z aplikacjami webowymi tworzonymi w Javie. W kolejnych częściach przedstawione zostaną wszystkie podstawowe czynności, które są niezbędne do stworzenia prostej aplikacji – od przedstawienia wiadomości teoretycznych, poprzez instalację odpowiedniego oprogramowania (Linux Mint/Ubuntu, Netbeans, Tomcat, Richfaces, Hibernate itd.), aż do stworzenia gotowego kodu. Wszystkich zainteresowanych zapraszam do śledzenia kategorii JavaTutorial, w której to umieszczane będą kolejne wpisy.

JSP (Java Server Pages) to, jak niektórzy zwykli mawiać, technologia niskopoziomowa. Z jej użyciem możliwe jest tworzenie dynamicznych dokumentów HTML z wstawkami języka Java. Rozwiązanie takie podobne jest do języka PHP. Strona JSP tłumaczona jest na serwlet, czyli małą aplikację Javy, uruchamianą po stronie serwera w kontenerze serwletów. Serwlet uruchamiany jest następnie przy każdym jej wywołaniu.

Każda strona JSP składa się treści statycznej, dyrektyw JSP, które kontrolują proces generowania kodu, elementów skrypletów (fragmentów kodu) oraz akcji JSP.

Część statyczna

Wyrażenia (zaczynają się od <%= and %>) – elementy generujące wynik, wykonywane przy każdym wczytaniu strony

Skryplety (zaczynają się od <%) – fragmenty kodu Java zapisane bezpośrednio w treści HTML’a; wykonywany podczas żądania strony przez klienta; out.; request.

Połączenie Skrypletów i HTML’a

Deklaracje (zaczynają się od <%!) – używane do deklarowania zmiennych i metod

Dyrektywy (zaczynają się od <%@) – nie są wyświetlane, konfigurują kontener JSP

Akcje / tagi (zaczynają się od <) – nie są wyświetlane, konfigurują kontener JSP; najczęściej używane to include, forward, useBean.

Poza podstawowymi znacznikami, JSP udostępnia dodatkowo osiem automatycznie zdefiniowanych zmiennych (tzw. ukrytych obiektów). Te zmienne to:
– request – HttpServletRequest, ma związek z wywołaniem; pozwala przeglądać parametry wywołania (getParameter), typ wywołania (GET, POST, HEAD, itd.) oraz nagłówki HTTP (cookies, Referer, itp.),
– response – HttpServletResponse, związany z odpowiedzią do klienta,
– out – PrintWriter, umożliwiający wysyłanie danych do klienta,
– session – HttpSession, sesja tworzona jest automatycznie dlatego zmienna jest ustawiona nawet w przypadku kiedy nie ma sesji przychodzącej. Wyjątkiem jest przypadek użycia atrybutu session dyrektywy page. Sesja dokładnie opisana jest poniżej.
– application,
– config,
– pageContext,
– page.

Utworzenie obiektów, które widziane są w ramach całej sesji jest proste. Wystarczy użyć standardowej akcji jsp:useBean ze znacznikiem scope=”session”, tak jak pokazano na przykładzie:

Kontener musi JSP mieć posiadać dostęp do klasy Klasa. Tak utworzona zmienna o nazwie nazwa będzie dostępna dla wszystkich stron związanych z daną sesją.

Przeglądając powyższe przykłady można wyciągnąć wniosek, że JSP dostarcza jedynie prostą stronę zawierającą znaczniki, zagnieżdżony kod Javy oraz podstawową logikę. JavaServer Faces pozwala na użycie JavaServer Pages jako szablonu i  rozszerza go o możliwość zastosowania zaawansowanych komponentów, walidacji, separacji danych, obsługi nawigacji, widoków, AJAXa itp.