1 / 18

Java Servlets

Java Servlets. Wprowadzenie do technologii J2EE Architektura serwletów Użycie serwletu na serwerze Cykl życia serwletu Obsługa żądań przez serwlet. Java 2 Enterprise Edition (J2EE). Platforma J2EE jest to zbiór technologii umożliwiających tworzenie zaawansowanych

Download Presentation

Java Servlets

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Servlets • Wprowadzenie do technologii J2EE • Architektura serwletów • Użycie serwletu na serwerze • Cykl życia serwletu • Obsługa żądań przez serwlet

  2. Java 2 Enterprise Edition (J2EE) Platforma J2EE jest to zbiór technologii umożliwiających tworzenie zaawansowanych rozwiązań internetowych opartych na języku Java • Ważnymi składnikami platformy J2EE są: • Komponenty Enterprise Java Beans (EJB) • Programy wykonywane na serwerze (Servlets) • Dynamiczne strony Java Server Pages (JSP) Aplikacje na platformie J2EE używają wielowarstwowego modelu rozproszonego

  3. Model wielowarstwowy Aplikacja J2EE Aplikacja J2EE Dynamiczne strony HTML Aplikacja klienta Warstwa kliencka Klient strony JSP, serwlety Enterprise Java Beans Warstwa Web'owa Serwer J2EE Enterprise Java Beans Warstwa biznesowa Baza danych Baza danych Warstwa danych Serwer baz danych

  4. Schemat działania Serwer J2EE Kontener Web'owy Kontener EJB Przeglądarka WWW Aplikacja klienta Kontener aplikacji Serwlet Strona JSP Enterprise Java Bean Enterprise Java Bean Baza danych Klient

  5. Kontenery J2EE • Komponenty Web'owe uruchamiane są w środowisku kontenera Web'owego, natomiast komponenty EJB w środowisku kontenera EJB • Kontenery konfigurowane są na serwerze (tzn. ich składniki i właściwości, np. prawa dostępu) • Kontenery zapewniają usługi takie jak: rozdzielanie żądań, bezpieczeństwo, współbieżność, zarządzanie czasem życia składników • Stanowią interfejs pomiędzy komponentami oraz usługami platform Java i J2EE

  6. Serwlety (Java Servlets) Serwlet – jest to klasa Javy uruchamiana na serwerze i rozszerzająca jego możliwości, która dynamicznie przetwarza żądania i generuje odpowiedzi • Serwlety HTTP są ulepszoną wersją tradycyjnego mechanizmu CGI • Serwlety mogą być uruchamiane tylko na serwerze zgodnym ze specyfikacją J2EE, na którym jest zainstalowana platforma Java • Mają dostęp do wszystkich bibliotek Javy, za wyjątkiem interfejsu użytkownika (AWT/Swing)

  7. Schemat tworzenia serwletu import javax.servlet.*; import javax. servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet( edycja kodu źródłowego javac kompilacja testowanie wdrożenie (deployment)

  8. Architektura serwletów • Pakiety javax.servlet oraz javax.servlet.http zawierają interfejsy i klasy potrzebne przy tworzeniu serwletów (jest to tzw. Java Servlet API). • Wszystkie serwlety muszą implementować interfejs Servlet, który definiuje metody do zarządzania cyklem życia serwletu. • Tworząc własny serwlet można oprzeć go na klasie GenericServlet (z pakietu javax.servlet) • Serwlety obsługujące żądania HTTP można oprzeć na klasie HttpServlet (z pakietu javax.servlet.http)

  9. Interfejsy i klasy serwletów GenericServlet init() getServletConfig() service(req, resp) getServletInfo() destroy() HttpServlet service(req, resp) service(reqest, response) doGet(request, response) doPost(request, response) doOptions(request, response) . . . <<Interface>> Servlet init(config) getServletConfig() service(req, resp) getServletInfo() destroy() init(config) getServletConfig() service(req, resp) getServletInfo() destroy() service(req, resp) service(reqest, response) doGet(request, response) doPost(request, response) doOptions(request, response) . . . service(req, resp) service(reqest, response) doGet(request, response) doPost(request, response) doOptions(request, response) . . .

  10. Kompilacja serwletu Serwer Tomcat servlet.jar HelloServlet.class HelloServlet.java javac Maszyna wirtualna Javy rt.jar

  11. Użycie serwletu HTTP / GET C:\ jakarta-tomcat webapps\ROOT\WEB-INF classes HelloServlet.class Serwer Tomcat servlet.jar http://serwer/servlet/HelloServlet Kontener serwletu HelloSerwlet

  12. Cykl życia serwletu Serwer Załadowanie kod serwletu Serwer Klient kod serwletu Klient Serwer Usunięcie kod serwletu • serwer ładuje i inicjalizuje serwlet • serwlet obsługuje zero lub więcej żądań klientów • serwer usuwa serwlet

  13. Inicjalizacja serwletu • Przy inicjalizacji wywoływana jest metoda init() serwletu. Inicjalizacja zawsze kończy się przed obsłużeniem jakiegokolowiek żądania klienta oraz przed usunięciem serwletu. • Metoda init() jest wywoływana tylko raz, kiedy serwlet jest ładowany i nie będzie wywołana, chyba, że serwer będzie chciał przeładować serwlet. • Serwer nie może przeładować serwletu, chyba, że zostanie on zniszczony poprzez wywołanie metody destroy().

  14. Obsługa żądań klientów • Kontener Web'owy serwletu jest odpowiedzialny za przesyłanie żądań klientów do serwletu i odbieranie od niego odpowiedzi. Musi także szeregować żądania napływające do serwletu. • Na serwerze rezyduje tylko jeden kontener serwletu, a co za tym idzie – także tylko jedna kopia serwletu. • Kontener zarządza stanem serwletu – np. pola składowe klasy serwletu są pamiętane pomiędzy kolejnymi wywołaniami serwletu.

  15. Usuwanie serwletu • Serwlet działa tak długo, aż sewer go usunie (np. na żądanie administratora systemu). • Kiedy serwlet ma zostać zniszczony, serwer wywołuje metodę destroy() serwletu.Metoda ta wywoływana jest tylko raz. • Serwer nie wywoła ponownie metody destroy(), chyba, że serwlet zostanie ponownie załadowanyi zainicjalizowany.

  16. Rozpoznawanie żądań • W klasie HttpServlet: • void service(ServletRequest req,ServletResponse res)Przekazuje żądanie klienta do chronionej metody service(). • protected void service(HttpServletRequest req,HttpServletResponse resp)Otrzymuje standardowe żądania HTTP z publicznej metody service() i przekazuje je do odpowiedniej metody doXXX() zdefiniowanej w tej klasie.

  17. Obiekty żądania i odpowiedzi • W metodach doGet() / doPost() serwlet otrzymuje jako argumenty obiekty HttpServletRequest (obiekt żądania) oraz HttpServletResponse(obiekt odpowiedzi). • Obiekt żądania zawiera informacje dotyczące żądania klienta, takie jak: nagłówki HTTP, parametry wywołania, cookies, identyfikator sesji, itp. • Obiekt odpowiedzi pozwala wysłać do klienta odpowiedź. Może być to dokument HTML albo dowolny inny typ MIME (np. obraz JPEG).

  18. Schemat obsługi żądania • Pierwszą czynnością serwletu jest ustawienie typu odpowiedzi: response.setContentType() • Następnie serwlet może pobrać z obiektu żądania strumień służący do wyprowadzania bajtów: response.getOutputStream() lub znaków: response.getWriter() • Może także pobrać wybrane parametry żądania: request.getParameter()/getParameterNames() lub strumień z treścią żądania: request.getReader() • Potem pozostaje jedynie wyprodukować oczekiwaną odpowiedź (np. dokument HTML).

More Related