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.