Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 49

Tworzenie aplikacji internetowych z uyciem platformy Java EE

Materiay pochodz ze strony: www.devcastzone.com

copyright BNS MEDIA

www.devcastzone.com

Serwlety podstawa aplikacji webowych


Tworzenie aplikacji internetowych z uyciem platformy Java EE

copyright BNS MEDIA

www.devcastzone.com

Spis treci
1. 2. 3. 4. 5. 6. 7. 8. Struktura aplikacji webowej Omwienie pliku konfiguracyjnego web.xml Serwlet od podstaw tworzenie i konfiguracja Serwlety obsuga sesji Atrybuty i ich zasigi Cykl ycia aplikacji a obiekty nasuchujce Bezpieczeostwo Filtry a dania
Tworzenie aplikacji internetowych z uyciem platformy Java EE
www.devcastzone.com

copyright BNS MEDIA

Struktura aplikacji webowej


/ katalog zawierajcy wszelkie widoki, szablony, a take wszystkie pliki, ktre maj byd dostpne publicznie. Serwer nie udostpnia jedynie plikw zawartych w podkatalogach WEB-INF i META-INF /WEB-INF katalog zawierajcy dodatkowe zasoby niezbdne do prawidowego dziaania aplikacji, m.in. skompilowane klasy Java i biblioteki (JAR)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

Struktura aplikacji webowej


/WEB-INF/web.xml deskryptor aplikacji webowej plik zawierajcy wszystkie istotne ustawienia, majcy kluczowe znaczenie dla dziaania caej aplikacji /WEB-INF/classes katalog zawierajcy skompilowane klasy /WEB-INF/lib katalog zawierajcy dodatkowe biblioteki

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

Struktura aplikacji webowej


/META-INF zawiera plik manifest.mf jego obecnod wynika z faktu, e kada aplikacja webowa przygotowana do wdroenia ma postad pojedynczego archiwum WAR (Web ARchive), bdcego specyficznym przypadkiem zwykego pliku JAR

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

Struktura aplikacji webowej


Typowy projekt (np. tworzony w rodowisku Eclipse) zawiera rwnie zintegrowany z projektem katalog z plikami rdowymi aplikacji. Pliki te nie s jednak wczane do archiwum WAR Opcjonalnie: odwoania do usug sieciowych, plik persistence.xml (plik konfiguracyjny stosowany w technologii JPA)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

Plik konfiguracyjny web.xml


W pliku /WEB-INF/web.xml zawarte s praktycznie wszystkie informacje dotyczce konfiguracji aplikacji webowej Java EE W Java EE 6 jego znaczenie nieco maleje, z uwagi na moliwod definiowania pewnych informacji bezporednio w plikach rdowych przy uyciu adnotacji

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

Plik konfiguracyjny web.xml


Podstawowe zastosowanie pliku web.xml to powizanie wzorcw adresw URL z konkretnymi klasami serwletw Powizanie odbywa si dwuetapowo:
o o

nazwa klasy serwletu <-> nazwa serwletu nazwa serwletu <-> jeden lub wiele wzorcw URL

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

Plik konfiguracyjny web.xml


Pierwszy etap: przydzielenie klasie serwletu przyjaznej nazwy:
<servlet> <servlet-name>ListaUzytkownikow</servlet-name> <servlet-class>szkolenie.serwlety.ListaUzytkownikow</servlet-class> </servlet>

Nazwa moe zawierad spacje W pozostaej treci pliku web.xml naley odwoywad si do serwletu tylko za pomoc nazwy
Tworzenie aplikacji internetowych z uyciem platformy Java EE
www.devcastzone.com

copyright BNS MEDIA

10

Plik konfiguracyjny web.xml


Drugi etap: przypisanie serwletowi przynajmniej jednego wzorca URL:
<servlet-mapping> <servlet-name>ListaUzytkownikow</servlet-name> <url-pattern>/serwlety/Lista</url-pattern> </servlet-mapping>

\W tym momencie uytkownik po wejciu na stron http://localhost/Aplikacja/serwlety/Lista wywoa ListaUzytkownikow

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

11

Plik konfiguracyjny web.xml


Jako wartod dla znacznika url-pattern mona podad nastpujce rodzaje wzorcw:
o

wzorzec dokadny np. /serwlety/Serwlet wzorzec wieloznaczny np. /serwlety/* zostan dopasowane wszystkie dania, ktre zawieraj fragment /serwlety/ wzorzec rozszerzeo *.xhtml zostan dopasowane wszystkie dania, ktre odwouj si do zasobw o danym rozszerzeniu

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

12

Plik konfiguracyjny web.xml


Serwlet moe otrzymad parametry inicjalizacyjne S one umieszczane w znaczniku <servlet> Dziki nim mona wpywad na dziaanie aplikacji bez rekompilacji plikw rdowych

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

13

Plik konfiguracyjny web.xml


Przykad:
<servlet> <servlet-name>SerwletListaUzytkownikow</servlet-name> <servlet-class>szkolenie.serwlety.ListaUzytkownikow</servlet-class> <init-param> <param-name>TrybRaportu</param-name> <param-value>mail</param-value> </init-param> </servlet>

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

14

Serwlety tworzenie, konfiguracja, wdroenie


Serwlet jest klas, ktra dziedziczy po klasie javax.servlet.GenericServlet Zadaniem serwletu jest obsuga dao (request) i generowanie odpowiedzi (response) Serwlet nie jest samodzieln aplikacj jest on uruchamiany przez kontener webowy

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

15

Serwlety tworzenie, konfiguracja, wdroenie


Mimo istnienia uniwersalnej architektury, znaczna wikszod serwletw dziedziczy po klasie HttpServlet, przystosowanej rzecz jasna do obsugi dao i odpowiedzi HTTP Po utworzeniu w odpowiedni sposb klasy serwletu i dodaniu niezbdnego kodu XML do pliku web.xml (lub adnotacji), serwlet jest gotowy do obsugi dao (oczywicie po uruchomieniu serwera)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

16

Serwlety tworzenie, konfiguracja, wdroenie


Klasa serwletu, dziedziczc po klasie HttpServlet, musi zawierad definicj co najmniej jednej z metod obsugujcych dania HTTP:
o

doGet(), doPost(), doDelete(), doPut()

Kada z tych metod obsuguje dania o okrelonej metodzie HTTP (GET/POST/PUT/DELETE)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

17

Serwlety tworzenie, konfiguracja, wdroenie


Wszystkie te metody maj identyczne sygnatury (poza nazwami):
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException

Parametr req reprezentuje obiekt dania, podczas gdy resp obiekt odpowiedzi

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

18

Serwlety tworzenie, konfiguracja, wdroenie


Dziaanie serwletu w duej mierze mona uprocid do schematu:
o
o o

pobierz niezbdne informacje z dania wykonaj logik biznesow wygeneruj odpowied, korzystajc ze strumieni dostpnych w obiekcie odpowiedzi

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

19

Serwlety tworzenie, konfiguracja, wdroenie


Przykad:
public class PierwszySerwlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); pw.println("Pierwszy serwlet!"); pw.flush(); } }

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

20

Serwlety tworzenie, konfiguracja, wdroenie


Przy uyciu obiektu klasy PrintWriter mona wygenerowad dane tekstowe, ktre trafi do przegldarki internetowej klienta W zwizku z tym w wywoaniach metod print/println mona przekazywad kod HTML/CSS lub w dowolnym innym podanym jzyku obsugiwanym przez przegldark (np. SVG)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

21

Serwlety tworzenie, konfiguracja, wdroenie


Do okrelenia typu przesyanych danych naley stosowad metod setContentType odpowiedzi Jeli zamiast obiektu klasy PrintWriter zostanie wykorzystany obiekt klasy ServletOutputStream, pobrany za pomoc metody getOutputStream odpowiedzi, mona przesyad dane binarne

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

22

Serwlety tworzenie, konfiguracja, wdroenie


Przykad:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { byte[] bufor = ... // pobranie pliku z dysku response.setContentType("image/png"); response.addHeader("Content-Disposition", "attachment; filename=obrazek.png"); response.setContentLength(bufor.length); OutputStream strumien = response.getOutputStream(); strumien.write(b); strumien.flush(); }

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

23

Serwlety tworzenie, konfiguracja, wdroenie


Istnieje moliwod doczenia do odpowiedzi nagwkw i ciasteczek:
o
o

void addHeader(String nazwa, String wartosc) void addCookie(Cookie ciastko)

gdzie c jest obiektem reprezentujcym pojedyncze ciastko (javax.servlet.http.Cookie)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

24

Serwlety tworzenie, konfiguracja, wdroenie


Aby pobrad parametry przesane w daniu (czy to za pomoc metody GET, czy te POST), naley skorzystad z metody typu HttpServletRequest:

String getParameter(String nazwa)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

25

Serwlety obsuga sesji


Dostpna za pomoc metody getSession() obiektu dania Reprezentowana za pomoc klasy HttpSession Kluczowe metody:
o o o

getAttribute() i setAttribute() invalidate() czyci sesj isNew() okrela, czy sesja zostaa utworzona w ramach aktualnego dania

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

26

Atrybuty i ich zasigi


W aplikacjach Java EE istnieje moliwod umieszczania danych w rnych zasigach Przykad sesja i metody get/setAttribute() Oprcz tego mona deklarowad atrybuty w zasigach dania i kontekstu aplikacji

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

27

Atrybuty i ich zasigi

W przypadku dania dostp do atrybutw reguluj metody get/setAttribute typu HttpServletRequest Kontekst aplikacji to specjalny obiekt, ktry udostpnia informacje na temat caej aplikacji i umoliwia dynamiczne modyfikowanie struktury aplikacji (np. dodawanie serwletw)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

28

Atrybuty i ich zasigi

Atrybuty umieszczone w zasigu kontekstu s dostpne w obrbie caej aplikacji! Dostp do atrybutw jest moliwy za pomoc metody get/setAttribute typu ServletContext Instancja typu ServletContext jest dostpna na rne sposoby, m.in. przy uyciu obiektu dania (req.getServletContext()) lub samego serwletu (this.getServletContext() w metodach doGet()/doPost())

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

29

Atrybuty i ich zasigi


Korzystajc z atrybutw o zasigu kontekstu naley pamitad o moliwoci wspbienego dostpu przez rnych klientw Z tego wzgldu warto synchronizowad metody/fragmenty kodu, ktre modyfikuj map atrybutw

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

30

Cykl ycia aplikacji a obiekty nasuchujce


Java EE udostpnia szereg obiektw nasuchujcych, dziki ktrym istnieje moliwod reagowania na rne sytuacje, ktre maj miejsce podczas dziaania aplikacji Najpierw naley wybrad interfejs, ktry udostpnia dane zdarzenia, a nastpnie dodad niezbdn informacj do pliku web.xml

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

31

Cykl ycia aplikacji a a obiekty nasuchujce


Zdarzenia cyklu ycia dla obiektw rnych zasigw:
o

ServletRequestListener dla dao:


requestInitialized, requestDestroyed

HttpSessionListener dla obiektw sesji


sessionCreated, sessionDestroyed

ServletContextListener dla kontekstu aplikacji


contextInitialized, contextDestroyed

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

32

Cykl ycia aplikacji a obiekty nasuchujce


Zdarzenia modyfikacji atrybutw o rnych zasigach:
o

ServletRequestAttributeListener:
attributeAdded, attributeRemoved, attributeReplaced

ServletContextAttributeListener:
j.w.

HttpSessionAttributeListener:
j.w.

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

33

Cykl ycia aplikacji a obiekty nasuchujce


Zdarzenia odpowiedzialne za informowanie obiektw o umieszczeniu ich w zasigu sesji:
o

HttpSessionBindingListener:
valueBound() obiekt zosta dodany do mapy atrybutw o zasigu sesji valueUnbound() obiekt zosta usunity z mapy atrybutw o zasigu sesji

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

34

Cykl ycia aplikacji a obiekty nasuchujce


Zdarzenia odpowiedzialne za informowanie obiektw o przeniesieniu sesji do innej maszyny wirtualnej
o

HttpSessionActivationListener:
sessionDidActivate() sesja zostaa aktywowana po przeniesieniu z innej VM sessionWillPassivate() sesja zostanie wyczona w celu przeniesienia do innej VM

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

35

Cykl ycia aplikacji a obiekty nasuchujce


Po utworzeniu klasy obiektu nasuchujcego naley dodad niezbdny kod do pliku web.xml (lub zastosowad adnotacj):
<listener> <listener-class>szkolenie.sluchacze.SluchaczSesji</listener-class> </listener>

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

36

Bezpieczeostwo
Aplikacje webowe pozwalaj na konfiguracj rnych aspektw bezpieczeostwa w pliku web.xml (w Java EE 6 take za pomoc adnotacji) Konfiguracja ta jest zupenie odseparowana od kodu serwletw czy te stron JSP pomijajc opcjonalne mechanizmy, z ktrych mona korzystad (np. sprawdzenie, czy uytkownik przynaley do roli)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

37

Bezpieczeostwo
Najwaniejsze aspekty konfiguracji bezpieczeostwa:
o

okrelenie rl aplikacji okrelenie rda danych bezpieczeostwa (w przypadku serwera Apache Tomcat moe byd to statyczny plik tomcatusers.xml, a mog byd to wybrane tabele z bazy danych)

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

38

Bezpieczeostwo
Najwaniejsze aspekty konfiguracji bezpieczeostwa:
o

okrelenie wzorcw URL, ktrych dotycz reguy bezpieczeostwa, wraz z dozwolonymi metodami HTTP powizanie wzorcw i rl (w pliku web.xml), a take rl i uytkownikw (np. w bazie danych) pozwala na utworzenie kompletnego systemu bezpieczeostwa w aplikacji

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

39

Bezpieczeostwo
Najwaniejsze aspekty konfiguracji bezpieczeostwa:
o

Istniej te dodatkowe aspekty, jak okrelenie minimalnego stopnia zabezpieczeo (np. SSL), metody uwierzytelniania, itd.

Separacja ustawieo bezpieczeostwa od kodu Java pozwala na przydzia zadao zwizanych z konfiguracj i bezpieczeostwem np. innemu pracownikowi

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

40

Bezpieczeostwo
Przykad:
<security-constraint> <web-resource-collection> <web-resource-name>user-resource</web-resource-name> <url-pattern>/nowyTemat</url-pattern> <url-pattern>/temat</url-pattern> <url-pattern>/index</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>uzytkownik</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/login</form-login-page> <form-error-page>/blad</form-error-page> </form-login-config> </login-config> <security-role> <role-name>uzytkownik</role-name> </security-role>

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

41

Filtry a dania
Filtr to mechanizm, ktry pozwala na wykonanie pewnej czynnoci przed przekazaniem sterowania do odpowiedniego serwletu Filtry, podobnie jak serwlety, mog byd aplikowane do wzorcw URL

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

42

Filtry a dania
Filtry s stosowane wszdzie tam, gdzie konieczna jest wstpna obrbka dao, np.:
o
o o

rejestrowanie informacji w dzienniku szyfrowanie/deszyfrowanie kompresja dynamiczna decyzja o przekazaniu sterowania do serwletu

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

43

Filtry a dania
Przykad:
// przeka sterowanie do serwletu, jeli istnieje parametr o nazwie X public class FiltrUzytkownikow implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("Przed obsug"); if (request.getParameter("nazwaUzytkownika")!=null) chain.doFilter(request, response); System.out.println("Po obsudze"); } public void init(FilterConfig fConfig) throws ServletException {} @Override public void destroy() {} }

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

44

Filtry a dania
Przykad (konfiguracja w pliku web.xml):
<filter> <filter-name>FiltrUzytkownikow</filter-name> <filter-class>szkolenie.filtry.FiltrUzytkownikow</filter-class> </filter> <filter-mapping> <filter-name>FiltrUzytkownikow</filter-name> <url-pattern>/serwlety/*</url-pattern> </filter-mapping>

copyright BNS MEDIA

Tworzenie aplikacji internetowych z uyciem platformy Java EE


www.devcastzone.com

45

Tworzenie aplikacji internetowych z uyciem platformy Java EE program penego szkolenia 1. Wprowadzenie do wiata aplikacji webowych Java EE
o o o

Aplikacje webowe a okienkowe porwnanie modeli Pojcia zwizane z tworzeniem aplikacji webowych Stos aplikacji webowej Java EE Konfiguracja rodowiska do pracy

2. Scala skadnia jzyka, funkcje, zmienne, pakiety, klasy


o o o o o o o o

Struktura aplikacji webowej Omwienie pliku konfiguracyjnego web.xml Serwlet od podstaw tworzenie i konfiguracja Serwlety obsuga sesji Atrybuty i ich zasigi Cykl ycia aplikacji a obiekty nasuchujce Bezpieczeostwo Filtry a dania
Programowanie w jzyku Scala
www.devcastzone.com

copyright BNS MEDIA

46

Tworzenie aplikacji internetowych z uyciem platformy Java EE program penego szkolenia

3. JSP tworzenie interfejsw uytkownika


o o o o o o o

JSP jako metoda separacji widoku od serwletw Przekazywanie informacji do stron JSP Expression Language jzyk wyraeo Wyraenia i operatory Akcje, czyli specjalne znaczniki JSP Dyrektywy JSP Legacy code na co uwaad w przestarzaym kodzie

4. JSTL biblioteka wspomagajca dziaanie JSP


o o o o

JSTL krtka charakterystyka Znaczniki bazowe (rdzeo) Znaczniki funkcyjne Znaczniki formatujce
Programowanie w jzyku Scala
www.devcastzone.com

copyright BNS MEDIA

47

Tworzenie aplikacji internetowych z uyciem platformy Java EE program penego szkolenia

5. Obsuga danych przy uyciu JDBC i JPA


o o

o
o o

JDBC podstawowy mechanizm obsugi bazy danych w Javie Separacja kodu obsugi JDBC od serwletw JPA struktura i zasady dziaania Adnotacje JPA jako sposb oznaczania klas encji Wdroenie JPA w aplikacji webowej

6. Nowoci w Java EE 6
o o o o
copyright BNS MEDIA

Adnotacje jako narzdzie do konfigurowania serwletw Uwierzytelnianie na poziomie serwletw Wywoania asynchroniczne Modularnod a konfiguracja w pliku web.xml
Programowanie w jzyku Scala
www.devcastzone.com

48

Tworzenie aplikacji internetowych z uyciem platformy Java EE http://www.devcastzone.com/course,tworzenie-aplikacjiinternetowych-z-uzyciem-platformy-java-ee

Zapraszamy

copyright BNS MEDIA

Programowanie w jzyku Scala


www.devcastzone.com

49

You might also like