Laboratorium 2. Aplikacje webowe. Technologia Java EE.

advertisement
Programowanie Zespołowe:
Laboratorium 2.
Aplikacje webowe. Technologia Java EE.
1. Serwlet
Serwlety Java to technologia implementacyjna wchodząca w skład obszernej dystrybucji Java
Platform, Enterprise Edition (Java EE, dawniej J2EE). Serwlet jest programem Java
umiejscowionym po stronie serwera HTTP, służącym do automatycznego generowania
dokumentów HTML stanowiących odpowiedzi na żądania HTTP. Serwlety Java wymagają
dedykowanego środowiska uruchomieniowego nazywanego serwerem aplikacji.
Cykl życia serwletu jest zarządzany przez kontener aplikacji Java EE. Gdy klient przekazuje
żądanie do serwera HTTP jest ono kierowane do kontenera aplikacji Java EE.
1. Jeżeli obiekt serwletu nie istnieje w kontenerze:
• zostaje załadowana klasa serwletu,
• zostaje utworzony nowy obiekt,
• obiekt serwletu zostaje zainicjowany przez wywołanie metody init().
2. Zostaje obsłużone żadanie przez wykonanie metody doGet() lub doPost().
3. Jeśli kontener potrzebuje usunąć serwlet, następuje jego finalizacja przy wykonaniu
metody destroy().
Implementacja serwletu polega na utworzeniu klasy dziedziczącej z klasy
javax.servlet.http.HttpServlet i zaimplementowaniu w niej co najmniej jednej z następujących
metod:
•
•
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
oraz opcjonalnie:
•
•
public void init(ServletConfig config) throws ServletException
public void destroy()
Przykładowy servlet został umieszczony poniżej:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Zadania do samodzielnego wykonania:
1. Utworzyć pierwszy serwlet na podstawie poradnika: http://www.javatpoint.com/creatingservlet-in-netbeans-ide
2. Utworzyć serwlet, który wypisze ile jest instancji klasy serwletu aktualnie na serwerze, ile
aktualna instancja obsłużyła zapytań użytkownika, oraz ile wszystkie instancje obsłużyły
zapytań użytkownika.
3. Utworzyć serwlet, który pobierze w formularzu imię i nazwisko użytkownika i przechowa
je w pliku cookies. Przy następnym uruchomieniu aplikacji przez użytkownika, jeśli istnieje
plik cookies wyświetli imię i nazwisko zamiast formularza. (Wskazówki:
http://www.tutorialspoint.com/servlets/servlets-cookies-handling.htm)
2. JSP
JSP (ang. JavaServer Pages) to technologia umożliwiająca tworzenie dynamicznych
dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML z wykorzystaniem
języka Java, wplecionego w kod HTML danej strony. W tym aspekcie, jest to rozwiązanie
podobne do PHP. Strona JSP w procesie translacji jest zamieniana na serwlet.
Skrypt JSP tworzą:
•
•
•
•
znaczniki HTML
elementy skryptu - tworzą kod Javy serwletu
dyrektywy - kontrola nad strukturą serwletu
akcje - określają komponenty (kontrola działania JSP)
Składnia opisana w: http://docs.oracle.com/javaee/5/tutorial/doc/bnagy.html
Zadania do samodzielnego wykonania:
1. Utworzyć pierwszą stronę JSP wyświetlającą komunikat Hello World! oraz aktualną datę i
godzinę.
2. Utworzyć prostą aplikację typu guestbook pozwalającą użytkownikom na dodawanie
wpisów po podaniu nazwy użytkownika i adresu e-mail. (Wymagane połączenie z bazą
danych MySQL oraz walidacja wprowadzonego adresu poczty elektronicznej).
3. Java EE
Java Enterprise Edition (Java EE) – jest szeroko rozpowszechnioną serwerową platformą
programistyczną języka Java, łączy w sobie technologie do produkcji oprogramowania
w architekturze klient-serwer. Aplikacje stworzone w technologii Java EE potrzebują do
działania własnego środowiska uruchomieniowego nazywanego serwerem aplikacji. Jest on
odpowiedzialny za m.in. cykl życia aplikacji, obsługę komunikacji, obsługę żądań
użytkownika, wielowątkowość. Założenie projektowe platformy w wersji Enterprise było
wprowadzenie niezależności od implementacji. Dzięki temu zyskujemy istotną niezależność
od środowiska w którym będzie uruchamiana aplikacja, co pozwala uruchamiać ją na
serwerach różnych producentów, zarówno komercyjnych jak i otwartych. Do
najpopularniejszych z nich należą: Oracle WebLogic, IBM WebSphere, JBoss, Glassfish,
Apache Geronimo. Java EE nie tylko korzysta z dużego zbioru bibliotek Javy Standard
Edition, ale pozwala programiście na skupienie uwagi wokół logiki biznesowej aplikacji,
wspierając inne aspekty tworzenia oprogramowania dzięki wielu interfejsom, przykładowo:
•
•
•
•
•
•
Enterprise JavaBeans – serwerowe komponenty zawierające logikę biznesową,
Web service – interfejs usług sieciowych do wymiany informacji w formacie XML,
Java Message Service – system komunikacji pomiędzy komponentami,
Java Persistence API – interfejs utrwalania danych,
Java Transaction API – transakcje,
Java Naming and Directory Interface – usługi katalogowe Javy.
Ogólna koncepcja wielowarstwowej aplikacji została przedstawiona na poniższym rysunku:
Poszczególne warstwy spełniają rożne zadania i komunikują się pomiędzy sobą:
• Warstwa klienta – warstwa dostępu za pomocą której użytkownik komunikuje się
z aplikacją. Może być to aplikacja w języku Java, przeglądarka internetowa na
komputerze typu desktop lub urządzeniu mobilnym lub też aplikacja w innej
technologii wykorzystująca usługi takie jak Web Service.
• Warstwa prezentacji – odpowiedzialna za prezentacje danych w postaci stron
internetowych o dynamicznej zawartości. Po stronie serwera generowanie
dynamicznych stron odbywa się za pomocą technologii Serwletów lub Java Server
Pages (lub/i jej frameworków).
• Warstwa biznesowa – jest warstwą rozproszonych komponentów, które realizują
logikę biznesową. Pobiera dane z warstwy niższej w zależności od żądania
użytkownika, i wysyła je do warstwy prezentacji.
• Warstwa utrwalania – odpowiedzialna za mapowanie obiektowo-relacyjne.
• Warstwa EIS – Integrating with the Enterprise Information System – warstwa
integracji z systemami relacyjnych bazy danych, systemami planowania zasobów
przedsiębiorstwa.
Mnogość interfejsów pozwala na tworzenie zorientowanych na współbieżność,
rozproszoność, integralność transakcji, wydajnych aplikacji, z których może korzystać
jednocześnie wielu użytkowników.
Zadania do samodzielnego wykonania:
1. Rozbudować aplikację guestbook z punktu 2.2 przy wykorzystaniu mapowania obiektoworelacyjnego (JPA).
Download