Laboratorium - Wstęp do Java EE

Transkrypt

Laboratorium - Wstęp do Java EE
Laboratorium
Podstawy platformy Java EE
Głównym celem laboratorium jest zapoznanie studenta z podstawowymi mechanizmami tworzenia
aplikacji webowej opartej na serwlecie przy użyciu Java EE. W ramach laboratorium student
ćwiczy umiejętność:
1. tworzenia i konfigurowania projektu webowy przy użyciu Eclipse (lub Netbeans),
2. stosowania serwletu i przy jego pomocy obsługiwanie podstawowych konstrukcji w plikach
*.jsp,
3. stosowania skryptletów w plikach *.jsp i przy ich pomocy wyświetlania przetworzonych
danych na poziomie logiki biznesowej,
4. przy pomocy mechanizmu beanów wyświetlania przetworzonych danych na poziomie logiki
biznesowej,
5. stosowania plików css do formatowania prezentowanych danych,
6. podstawowego użycia biblioteki JSTL,
7. wyświetlania na stronie internetowej podstawowych danych wyciągniętych z plików cookie.
Materiały pomocnicze
1. http://www.oracle.com/technetwork/java/javaee/documentation/tutorials-137605.html
2. http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
3. itd.
Zadania:
W celu przygotowania środowiska pracy utwórz w repozytorium w folderze trunk podfolder lab5heello (import lub checkout i commit). W razie potrzeby możesz usunąć wcześniejszą zawartość
folderu trunk. Nad poniższym projektem pracuj w kopii roboczej folderu lab5-heello.
Zadanie 1
Wygenerowanie i uruchomienie aplikacji webowej typu Hello World za pomocą Eclipse IDE.
Implementacja Servletu i obsługa parametru na stronie JSP.
1. Uruchom środowisko EclipseIDE.
2. Utwórz nowy projekt typu 'Dynamic Web Project'
a) Project name: helloWorldEE
b) Target runtime: Apache Tomcat 7.0 (jeżeli nie istnieje, należy utworzyć nowe
środowisko typu Apache Tomcat 7.0 wskazując ścieżkę instalacyjną TOOLS\apachetomcat-wersja)
c) Dynamic web module version: 3.0
d) default configuration for Apache Tomcat 7.0.
e) Pozostałe ustawienia kreatora pozostawiamy z domyślnymi wartościami oprócz
„Generate web.xml deployment descriptor” w konfiguracji Web Module, który proszę
zaznaczyć.
3. Zapoznaj się ze strukturą projektu.
4. Utwórz stronę jsp o nazwie index.jsp wyświetlającą komunikat „Hello World!”
5. Uruchom aplikację z poziomu EclipseIDE (Run->Run As->Run on server). Sprawdź
działanie aplikacji.
UWAGA: Jeżeli strona się nie wyświetla sprawdź czy jest uruchomiony serwer (zakładka
Servers) oraz ścieżkę webową na jaką mapuje się serwlet (konfiguracja w drzewie projektu:
Deployment Descriptor->Servlet mappings)
6. Do strony dodaj formularz:
<form action="Hello.do">
<p>Wprowadź imię:</p>
<input type="text" name="imie" />
<input type="submit" value="ok" />
</form>
zweryfikuj jego działanie.
7. Utwórz nowy serwlet do obsługi formularza za pomocą kreatora EclipseIDE. Parametry:
a) Java Package: edu.kis.psoir.hello
b) Class name: HelloServlet
c) URL mappings: /Hello.do
d) Which method stubs would you like to create? DoGet i DoPost
e) Pozostałe ustawienia kreatora pozostawiamy z domyślnymi wartościami.
8. Zapoznaj się z wprowadzonymi przez kreator zmianami w projekcie (klasa implementująca
servlet + konfiguracja + plik web.xml).
9. Zaimplementuj jednakowo metody doGet/doPost(HttpServletRequest request,
HttpServletResponse response):
Metody powinny generować stronę wyświetlającą komunikat:
Witaj imie to Twoja pierwsza Webowa aplikacja
gdzie imie jest to atrybut przekazany przez formularz. Do jego wartości można dostać się w
instancji klasy HttpServletRequest. (wskazówka: użyj metody getAttribute()). Do
generacji strony użyj instancji PrintWriter zwracanej przez metodę getWriter()
HttpServletResponse.
10.
Wyłącz i włącz serwer Tomcat z poziomu EclipseIDE. Ponownie uruchom aplikację.
Przetestuj działanie strony JSP i serwletu.
Zadanie 2
1. W ramach rozpoczętego w poprzednim zadaniu projektu w pakiecie edu.kis.psoir.stocks
utwórz trzy klasy:
- Company – reprezentująca spółkę.
- StockQuotation – z informacjami o notowaniach spółki na określony dzień.
- StockExchange – klasa, w której dodajemy nowe spółki i jej notowania. (Może być
domyślnie zainicjalizowana trzema notowaniami z tego samego dnia.)
2. Utwórz stronę index.jsp w katalogu WebContent/stocks, która będzie służyła do prezentacji
notowań. W tym celu utwórz tabelkę (<table>) o odpowiednich nagłówkach (<tr> i <th>)
3. Napisz skryplet wypełniający notowaniami (domyślne dane z StockExchange) powyższą
tabelkę. Przetestować działanie skrypletu.
4. Zmienić formatowanie tabeli przez napisanie prostego pliku css i zastosowanie go na
stronie:
<link rel="stylesheet" type="text/css" href="styltabeli.css"/>
5. * Zamień skryplet Java na Expression Language wykorzystujący JavaBeans.
Zadanie 3
Obsługa sesji.
Wykorzystując obiekt sesji (reprezentowany przez interfejs HttpSession i dostępny z poziomu
obiektu request) zaimplementuj licznik, który będzie wyświetlał na tej samej stronie wartość
reprezentującą liczbę wywołań strony w obrębie sesji.
Wskazówki:
1. Sesję pobieramy z obiektu request (metoda getSession())
2. Obiekt sesji ma możliwość ustawiania (metoda setAttribute()) oraz pobierania wartości
atrybutów (metoda getAttribute()).
Zadanie 4 - opcjonalne
Wykorzystując informację z zadań 2 – 4 zaimplementuj w ramach tej samej aplikacji nowy servlet
(o nazwie LoginServlet mapowany na URL /servlet ) obsługujący proces logowania użytkownika.
Logowanie polega na wprowadzeniu identyfikator oraz hasła (strona login.jsp) (rzeczywistą
autoryzację pomijamy).
Użytkownik powinien być automatycznie przekierowany do strony logowania jeżeli podczas
odwołania się do usługi Hello obiekt sesji nie istnieje. Po zalogowaniu powinien być przekierowany
do usługi Hello w taki sposób, aby wpisany podczas logowania identyfikator stał się atrybutem
usługi.
Wskazówki:
1. strona login.jsp powinna wykorzystywać formularz html do z polami do wpisania loginu oraz
hasła. Akcja zatwierdzenia formularza powinna wywoływać servlet obsługujący logowanie.