SlideShare uma empresa Scribd logo
1 de 49
Tworzenie aplikacji internetowych
                z użyciem platformy Java EE
                      Materiały pochodzą ze strony:
                        www.devcastzone.com




copyright BNS MEDIA
                                 www.devcastzone.com
Serwlety – podstawa aplikacji
                          webowych
                        Tworzenie aplikacji internetowych
                          z użyciem platformy Java EE




copyright BNS MEDIA
                                   www.devcastzone.com
Spis treści
      1.        Struktura aplikacji webowej
      2.        Omówienie pliku konfiguracyjnego web.xml
      3.        Serwlet od podstaw – tworzenie i konfiguracja
      4.        Serwlety – obsługa sesji
      5.        Atrybuty i ich zasięgi
      6.        Cykl życia aplikacji a obiekty nasłuchujące
      7.        Bezpieczeostwo
      8.        Filtry a żądania

                            Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                 www.devcastzone.com                        3
Struktura aplikacji webowej
      • / – katalog zawierający wszelkie widoki, szablony, a
        także wszystkie pliki, które mają byd dostępne
        publicznie. Serwer nie udostępnia jedynie plików
        zawartych w podkatalogach WEB-INF i META-INF
      • /WEB-INF – katalog zawierający dodatkowe zasoby
        niezbędne do prawidłowego działania aplikacji, m.in.
        skompilowane klasy Java i biblioteki (JAR)




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        4
Struktura aplikacji webowej
      • /WEB-INF/web.xml – deskryptor aplikacji webowej –
        plik zawierający wszystkie istotne ustawienia, mający
        kluczowe znaczenie dla działania całej aplikacji
      • /WEB-INF/classes – katalog zawierający
        skompilowane klasy
      • /WEB-INF/lib – katalog zawierający dodatkowe
        biblioteki



                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        5
Struktura aplikacji webowej

      • /META-INF – zawiera plik manifest.mf – jego
        obecnośd wynika z faktu, że każda aplikacja webowa
        przygotowana do wdrożenia ma postad pojedynczego
        archiwum WAR (Web ARchive), będącego
        specyficznym przypadkiem zwykłego pliku JAR




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        6
Struktura aplikacji webowej
      • Typowy projekt (np. tworzony w środowisku Eclipse)
        zawiera również zintegrowany z projektem katalog z
        plikami źródłowymi aplikacji. Pliki te nie są jednak
        włączane do archiwum WAR
      • Opcjonalnie: odwołania do usług sieciowych, plik
        persistence.xml (plik konfiguracyjny stosowany w
        technologii JPA)




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        7
Plik konfiguracyjny web.xml
      • W pliku /WEB-INF/web.xml zawarte są praktycznie
        wszystkie informacje dotyczące konfiguracji aplikacji
        webowej Java EE
      • W Java EE 6 jego znaczenie nieco maleje, z uwagi na
        możliwośd definiowania pewnych informacji
        bezpośrednio w plikach źródłowych przy użyciu
        adnotacji




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        8
Plik konfiguracyjny web.xml
      • Podstawowe zastosowanie pliku web.xml to
        powiązanie wzorców adresów URL z konkretnymi
        klasami serwletów
      • Powiązanie odbywa się dwuetapowo:
               o      nazwa klasy serwletu <-> nazwa serwletu
               o      nazwa serwletu <-> jeden lub wiele wzorców URL




                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        9
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 może zawierad spacje
      • W pozostałej treści pliku web.xml należy odwoływad
        się do serwletu tylko za pomocą nazwy

                           Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                www.devcastzone.com                        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 użytkownik po wejściu na stronę
        http://localhost/Aplikacja/serwlety/Lista wywoła
        ListaUzytkownikow


                          Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                               www.devcastzone.com                        11
Plik konfiguracyjny web.xml
      • Jako wartośd dla znacznika url-pattern można podad
        następujące rodzaje wzorców:
               o      wzorzec dokładny – np. /serwlety/Serwlet
               o      wzorzec wieloznaczny – np. /serwlety/* – zostaną
                      dopasowane wszystkie żądania, które zawierają fragment
                      /serwlety/
               o      wzorzec rozszerzeo – *.xhtml – zostaną dopasowane
                      wszystkie żądania, które odwołują się do zasobów o danym
                      rozszerzeniu


                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        12
Plik konfiguracyjny web.xml
      • Serwlet może otrzymad parametry inicjalizacyjne

      • Są one umieszczane w znaczniku <servlet>

      • Dzięki nim można wpływad na działanie aplikacji bez
        rekompilacji plików źródłowych




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        13
Plik konfiguracyjny web.xml
      • Przykład:

   <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>




                          Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                               www.devcastzone.com                        14
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Serwlet jest klasą, która dziedziczy po klasie
        javax.servlet.GenericServlet
      • Zadaniem serwletu jest obsługa żądao (request) i
        generowanie odpowiedzi (response)
      • Serwlet nie jest samodzielną aplikacją – jest on
        uruchamiany przez kontener webowy




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        15
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Mimo istnienia uniwersalnej architektury, znaczna
        większośd serwletów dziedziczy po klasie
        HttpServlet, przystosowanej rzecz jasna do obsługi
        żądao i odpowiedzi HTTP
      • Po utworzeniu w odpowiedni sposób klasy serwletu i
        dodaniu niezbędnego kodu XML do pliku web.xml
        (lub adnotacji), serwlet jest gotowy do obsługi żądao
        (oczywiście po uruchomieniu serwera)


                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        16
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Klasa serwletu, dziedzicząc po klasie
        HttpServlet, musi zawierad definicję co najmniej
        jednej z metod obsługujących żądania HTTP:
               o      doGet(), doPost(), doDelete(), doPut()
      • Każda z tych metod obsługuje żądania o określonej
        metodzie HTTP (GET/POST/PUT/DELETE)




                                   Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                        www.devcastzone.com                        17
Serwlety – tworzenie, konfiguracja, wdrożenie
      • 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



                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        18
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Działanie serwletu w dużej mierze można uprościd do
        schematu:
               o      pobierz niezbędne informacje z żądania
               o      wykonaj logikę biznesową
               o      wygeneruj odpowiedź, korzystając ze strumieni
                      dostępnych w obiekcie odpowiedzi




                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        19
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Przykład:
  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();
          }
  }




                       Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                            www.devcastzone.com                        20
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Przy użyciu obiektu klasy PrintWriter można
        wygenerowad dane tekstowe, które trafią do
        przeglądarki internetowej klienta
      • W związku z tym w wywołaniach metod print/println
        można przekazywad kod HTML/CSS lub w dowolnym
        innym pożądanym języku obsługiwanym przez
        przeglądarkę (np. SVG)



                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        21
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Do określenia typu przesyłanych danych należy
        stosowad metodę setContentType odpowiedzi

      • Jeśli zamiast obiektu klasy PrintWriter zostanie
        wykorzystany obiekt klasy ServletOutputStream,
        pobrany za pomocą metody getOutputStream
        odpowiedzi, można przesyład dane binarne


                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        22
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Przykład:
   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();
   }




                       Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                            www.devcastzone.com                        23
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Istnieje możliwośd dołączenia do odpowiedzi
        nagłówków i ciasteczek:
               o      void addHeader(String nazwa, String wartosc)
               o      void addCookie(Cookie ciastko)
            gdzie c jest obiektem reprezentującym pojedyncze
            ciastko (javax.servlet.http.Cookie)




                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        24
Serwlety – tworzenie, konfiguracja, wdrożenie
      • Aby pobrad parametry przesłane w żądaniu (czy to za
        pomocą metody GET, czy też POST), należy skorzystad
        z metody typu HttpServletRequest:

      • String getParameter(String nazwa)




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        25
Serwlety – obsługa sesji
      • Dostępna za pomocą metody getSession() obiektu
        żądania
      • Reprezentowana za pomocą klasy HttpSession
      • Kluczowe metody:
               o      getAttribute() i setAttribute()
               o      invalidate() – czyści sesję
               o      isNew() – określa, czy sesja została utworzona w ramach
                      aktualnego żądania



                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        26
Atrybuty i ich zasięgi
      • W aplikacjach Java EE istnieje możliwośd
        umieszczania danych w różnych zasięgach

      • Przykład – sesja i metody get/setAttribute()

      • Oprócz tego można deklarowad atrybuty w zasięgach
        żądania i kontekstu aplikacji



                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        27
Atrybuty i ich zasięgi
      • W przypadku żądania dostęp do atrybutów regulują
        metody get/setAttribute typu HttpServletRequest

      • Kontekst aplikacji to specjalny obiekt, który
        udostępnia informacje na temat całej aplikacji i
        umożliwia dynamiczne modyfikowanie struktury
        aplikacji (np. dodawanie serwletów)




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        28
Atrybuty i ich zasięgi
      • Atrybuty umieszczone w zasięgu kontekstu są dostępne w
        obrębie całej aplikacji!

      • Dostęp do atrybutów jest możliwy za pomocą metody
        get/setAttribute typu ServletContext

      • Instancja typu ServletContext jest dostępna na różne
        sposoby, m.in. przy użyciu obiektu żądania
        (req.getServletContext()) lub samego serwletu
        (this.getServletContext() w metodach doGet()/doPost())


                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        29
Atrybuty i ich zasięgi
      • Korzystając z atrybutów o zasięgu kontekstu należy
        pamiętad o możliwości współbieżnego dostępu przez
        różnych klientów

      • Z tego względu warto synchronizowad
        metody/fragmenty kodu, które modyfikują mapę
        atrybutów



                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        30
Cykl życia aplikacji a obiekty nasłuchujące
      • Java EE udostępnia szereg obiektów nasłuchujących,
        dzięki którym istnieje możliwośd reagowania na
        różne sytuacje, które mają miejsce podczas działania
        aplikacji
      • Najpierw należy wybrad interfejs, który udostępnia
        żądane zdarzenia, a następnie dodad niezbędną
        informację do pliku web.xml




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        31
Cykl życia aplikacji a a obiekty nasłuchujące
      • Zdarzenia cyklu życia dla obiektów różnych zasięgów:
               o      ServletRequestListener – dla żądao:
                       • requestInitialized, requestDestroyed
               o      HttpSessionListener – dla obiektów sesji
                       • sessionCreated, sessionDestroyed
               o      ServletContextListener – dla kontekstu aplikacji
                       • contextInitialized, contextDestroyed




                                     Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                          www.devcastzone.com                        32
Cykl życia aplikacji a obiekty nasłuchujące
      • Zdarzenia modyfikacji atrybutów o różnych
        zasięgach:
               o      ServletRequestAttributeListener:
                       • attributeAdded, attributeRemoved, attributeReplaced
               o      ServletContextAttributeListener:
                       • j.w.
               o      HttpSessionAttributeListener:
                       • j.w.




                                    Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                         www.devcastzone.com                        33
Cykl życia aplikacji a obiekty nasłuchujące
      • Zdarzenia odpowiedzialne za informowanie obiektów
        o umieszczeniu ich w zasięgu sesji:
               o      HttpSessionBindingListener:
                       • valueBound() – obiekt został dodany do mapy atrybutów o zasięgu
                         sesji
                       • valueUnbound() – obiekt został usunięty z mapy atrybutów o
                         zasięgu sesji




                                    Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                         www.devcastzone.com                        34
Cykl życia aplikacji a obiekty nasłuchujące
      • Zdarzenia odpowiedzialne za informowanie obiektów
        o przeniesieniu sesji do innej maszyny wirtualnej
               o      HttpSessionActivationListener:
                       • sessionDidActivate() – sesja została aktywowana po przeniesieniu z
                         innej VM
                       • sessionWillPassivate() – sesja zostanie wyłączona w celu
                         przeniesienia do innej VM




                                    Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                         www.devcastzone.com                        35
Cykl życia aplikacji a obiekty nasłuchujące
      • Po utworzeniu klasy obiektu nasłuchującego należy
        dodad niezbędny kod do pliku web.xml (lub
        zastosowad adnotację):

 <listener>
   <listener-class>szkolenie.sluchacze.SluchaczSesji</listener-class>
 </listener>




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        36
Bezpieczeostwo
      • Aplikacje webowe pozwalają na konfigurację różnych
        aspektów bezpieczeostwa w pliku web.xml (w Java EE
        6 także za pomocą adnotacji)
      • Konfiguracja ta jest zupełnie odseparowana od kodu
        serwletów czy też stron JSP – pomijając opcjonalne
        mechanizmy, z których można korzystad (np.
        sprawdzenie, czy użytkownik przynależy do roli)




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        37
Bezpieczeostwo
      • Najważniejsze aspekty konfiguracji bezpieczeostwa:
               o      określenie ról aplikacji

               o      określenie źródła danych bezpieczeostwa (w przypadku
                      serwera Apache Tomcat może byd to statyczny plik tomcat-
                      users.xml, a mogą byd to wybrane tabele z bazy danych)




                                    Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                         www.devcastzone.com                        38
Bezpieczeostwo
      • Najważniejsze aspekty konfiguracji bezpieczeostwa:
               o      określenie wzorców URL, których dotyczą reguły
                      bezpieczeostwa, wraz z dozwolonymi metodami HTTP
               o      powiązanie wzorców i ról (w pliku web.xml), a także ról i
                      użytkowników (np. w bazie danych) pozwala na utworzenie
                      kompletnego systemu bezpieczeostwa w aplikacji




                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        39
Bezpieczeostwo
      • Najważniejsze aspekty konfiguracji bezpieczeostwa:
               o      Istnieją też dodatkowe aspekty, jak określenie
                      minimalnego stopnia zabezpieczeo (np. SSL), metody
                      uwierzytelniania, itd.
      • Separacja ustawieo bezpieczeostwa od kodu Java
        pozwala na przydział zadao związanych z konfiguracją
        i bezpieczeostwem np. innemu pracownikowi




                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        40
Bezpieczeostwo
      • Przykład:
    <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>



                                        Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                             www.devcastzone.com                        41
Filtry a żądania
      • Filtr to mechanizm, który pozwala na wykonanie
        pewnej czynności przed przekazaniem sterowania do
        odpowiedniego serwletu
      • Filtry, podobnie jak serwlety, mogą byd aplikowane
        do wzorców URL




                      Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                           www.devcastzone.com                        42
Filtry a żądania
      • Filtry są stosowane wszędzie tam, gdzie konieczna
        jest wstępna obróbka żądao, np.:

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




                                  Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                       www.devcastzone.com                        43
Filtry a żądania
      • Przykład:
   // przekaż sterowanie do serwletu, jeśli 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 obsługą");
                     if (request.getParameter("nazwaUzytkownika")!=null)
                              chain.doFilter(request, response);
                     System.out.println("Po obsłudze");
            }
            public void init(FilterConfig fConfig) throws ServletException {}
            @Override
            public void destroy() {}
   }




                           Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                www.devcastzone.com                        44
Filtry a żądania
      • Przykład (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>




                           Tworzenie aplikacji internetowych z użyciem platformy Java EE
copyright BNS MEDIA
                                                www.devcastzone.com                        45
Tworzenie aplikacji internetowych
z użyciem platformy Java EE – program pełnego szkolenia

      1. Wprowadzenie do świata aplikacji webowych Java EE
               o      Aplikacje webowe a okienkowe – porównanie modeli
               o      Pojęcia związane z tworzeniem aplikacji webowych
               o      Stos aplikacji webowej Java EE
               o      Konfiguracja środowiska do pracy

      2. Scala – składnia języka, funkcje, zmienne, pakiety, klasy
               o      Struktura aplikacji webowej
               o      Omówienie pliku konfiguracyjnego web.xml
               o      Serwlet od podstaw – tworzenie i konfiguracja
               o      Serwlety – obsługa sesji
               o      Atrybuty i ich zasięgi
               o      Cykl życia aplikacji a obiekty nasłuchujące
               o      Bezpieczeostwo
               o      Filtry a żądania

                                                 Programowanie w języku Scala
copyright BNS MEDIA
                                                      www.devcastzone.com       46
Tworzenie aplikacji internetowych
z użyciem platformy Java EE – program pełnego szkolenia

      3. JSP – tworzenie interfejsów użytkownika
               o      JSP jako metoda separacji widoku od serwletów
               o      Przekazywanie informacji do stron JSP
               o      Expression Language – język wyrażeo
               o      Wyrażenia i operatory
               o      Akcje, czyli specjalne znaczniki JSP
               o      Dyrektywy JSP
               o      Legacy code – na co uważad w przestarzałym kodzie

      4. JSTL – biblioteka wspomagająca działanie JSP
               o      JSTL – krótka charakterystyka
               o      Znaczniki bazowe (rdzeo)
               o      Znaczniki funkcyjne
               o      Znaczniki formatujące
                                               Programowanie w języku Scala
copyright BNS MEDIA
                                                    www.devcastzone.com       47
Tworzenie aplikacji internetowych
z użyciem platformy Java EE – program pełnego szkolenia

      5. Obsługa danych przy użyciu JDBC i JPA
               o      JDBC – podstawowy mechanizm obsługi bazy danych w Javie
               o      Separacja kodu obsługi JDBC od serwletów
               o      JPA – struktura i zasady działania
               o      Adnotacje JPA jako sposób oznaczania klas encji
               o      Wdrożenie JPA w aplikacji webowej

      6. Nowości w Java EE 6
               o      Adnotacje jako narzędzie do konfigurowania serwletów
               o      Uwierzytelnianie na poziomie serwletów
               o      Wywołania asynchroniczne
               o      Modularnośd a konfiguracja w pliku web.xml
                                          Programowanie w języku Scala
copyright BNS MEDIA
                                               www.devcastzone.com              48
Tworzenie aplikacji internetowych
                              z użyciem platformy Java EE
               http://www.devcastzone.com/course,tworzenie-aplikacji-
                      internetowych-z-uzyciem-platformy-java-ee

                                 Zapraszamy


                                   Programowanie w języku Scala
copyright BNS MEDIA
                                        www.devcastzone.com             49

Mais conteúdo relacionado

Destaque

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destaque (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Tworzenie aplikacji internetowych z użyciem platformy Java EE

  • 1. Tworzenie aplikacji internetowych z użyciem platformy Java EE Materiały pochodzą ze strony: www.devcastzone.com copyright BNS MEDIA www.devcastzone.com
  • 2. Serwlety – podstawa aplikacji webowych Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com
  • 3. Spis treści 1. Struktura aplikacji webowej 2. Omówienie pliku konfiguracyjnego web.xml 3. Serwlet od podstaw – tworzenie i konfiguracja 4. Serwlety – obsługa sesji 5. Atrybuty i ich zasięgi 6. Cykl życia aplikacji a obiekty nasłuchujące 7. Bezpieczeostwo 8. Filtry a żądania Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 3
  • 4. Struktura aplikacji webowej • / – katalog zawierający wszelkie widoki, szablony, a także wszystkie pliki, które mają byd dostępne publicznie. Serwer nie udostępnia jedynie plików zawartych w podkatalogach WEB-INF i META-INF • /WEB-INF – katalog zawierający dodatkowe zasoby niezbędne do prawidłowego działania aplikacji, m.in. skompilowane klasy Java i biblioteki (JAR) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 4
  • 5. Struktura aplikacji webowej • /WEB-INF/web.xml – deskryptor aplikacji webowej – plik zawierający wszystkie istotne ustawienia, mający kluczowe znaczenie dla działania całej aplikacji • /WEB-INF/classes – katalog zawierający skompilowane klasy • /WEB-INF/lib – katalog zawierający dodatkowe biblioteki Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 5
  • 6. Struktura aplikacji webowej • /META-INF – zawiera plik manifest.mf – jego obecnośd wynika z faktu, że każda aplikacja webowa przygotowana do wdrożenia ma postad pojedynczego archiwum WAR (Web ARchive), będącego specyficznym przypadkiem zwykłego pliku JAR Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 6
  • 7. Struktura aplikacji webowej • Typowy projekt (np. tworzony w środowisku Eclipse) zawiera również zintegrowany z projektem katalog z plikami źródłowymi aplikacji. Pliki te nie są jednak włączane do archiwum WAR • Opcjonalnie: odwołania do usług sieciowych, plik persistence.xml (plik konfiguracyjny stosowany w technologii JPA) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 7
  • 8. Plik konfiguracyjny web.xml • W pliku /WEB-INF/web.xml zawarte są praktycznie wszystkie informacje dotyczące konfiguracji aplikacji webowej Java EE • W Java EE 6 jego znaczenie nieco maleje, z uwagi na możliwośd definiowania pewnych informacji bezpośrednio w plikach źródłowych przy użyciu adnotacji Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 8
  • 9. Plik konfiguracyjny web.xml • Podstawowe zastosowanie pliku web.xml to powiązanie wzorców adresów URL z konkretnymi klasami serwletów • Powiązanie odbywa się dwuetapowo: o nazwa klasy serwletu <-> nazwa serwletu o nazwa serwletu <-> jeden lub wiele wzorców URL Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 9
  • 10. 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 może zawierad spacje • W pozostałej treści pliku web.xml należy odwoływad się do serwletu tylko za pomocą nazwy Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 10
  • 11. 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 użytkownik po wejściu na stronę http://localhost/Aplikacja/serwlety/Lista wywoła ListaUzytkownikow Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 11
  • 12. Plik konfiguracyjny web.xml • Jako wartośd dla znacznika url-pattern można podad następujące rodzaje wzorców: o wzorzec dokładny – np. /serwlety/Serwlet o wzorzec wieloznaczny – np. /serwlety/* – zostaną dopasowane wszystkie żądania, które zawierają fragment /serwlety/ o wzorzec rozszerzeo – *.xhtml – zostaną dopasowane wszystkie żądania, które odwołują się do zasobów o danym rozszerzeniu Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 12
  • 13. Plik konfiguracyjny web.xml • Serwlet może otrzymad parametry inicjalizacyjne • Są one umieszczane w znaczniku <servlet> • Dzięki nim można wpływad na działanie aplikacji bez rekompilacji plików źródłowych Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 13
  • 14. Plik konfiguracyjny web.xml • Przykład: <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> Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 14
  • 15. Serwlety – tworzenie, konfiguracja, wdrożenie • Serwlet jest klasą, która dziedziczy po klasie javax.servlet.GenericServlet • Zadaniem serwletu jest obsługa żądao (request) i generowanie odpowiedzi (response) • Serwlet nie jest samodzielną aplikacją – jest on uruchamiany przez kontener webowy Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 15
  • 16. Serwlety – tworzenie, konfiguracja, wdrożenie • Mimo istnienia uniwersalnej architektury, znaczna większośd serwletów dziedziczy po klasie HttpServlet, przystosowanej rzecz jasna do obsługi żądao i odpowiedzi HTTP • Po utworzeniu w odpowiedni sposób klasy serwletu i dodaniu niezbędnego kodu XML do pliku web.xml (lub adnotacji), serwlet jest gotowy do obsługi żądao (oczywiście po uruchomieniu serwera) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 16
  • 17. Serwlety – tworzenie, konfiguracja, wdrożenie • Klasa serwletu, dziedzicząc po klasie HttpServlet, musi zawierad definicję co najmniej jednej z metod obsługujących żądania HTTP: o doGet(), doPost(), doDelete(), doPut() • Każda z tych metod obsługuje żądania o określonej metodzie HTTP (GET/POST/PUT/DELETE) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 17
  • 18. Serwlety – tworzenie, konfiguracja, wdrożenie • 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 Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 18
  • 19. Serwlety – tworzenie, konfiguracja, wdrożenie • Działanie serwletu w dużej mierze można uprościd do schematu: o pobierz niezbędne informacje z żądania o wykonaj logikę biznesową o wygeneruj odpowiedź, korzystając ze strumieni dostępnych w obiekcie odpowiedzi Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 19
  • 20. Serwlety – tworzenie, konfiguracja, wdrożenie • Przykład: 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(); } } Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 20
  • 21. Serwlety – tworzenie, konfiguracja, wdrożenie • Przy użyciu obiektu klasy PrintWriter można wygenerowad dane tekstowe, które trafią do przeglądarki internetowej klienta • W związku z tym w wywołaniach metod print/println można przekazywad kod HTML/CSS lub w dowolnym innym pożądanym języku obsługiwanym przez przeglądarkę (np. SVG) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 21
  • 22. Serwlety – tworzenie, konfiguracja, wdrożenie • Do określenia typu przesyłanych danych należy stosowad metodę setContentType odpowiedzi • Jeśli zamiast obiektu klasy PrintWriter zostanie wykorzystany obiekt klasy ServletOutputStream, pobrany za pomocą metody getOutputStream odpowiedzi, można przesyład dane binarne Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 22
  • 23. Serwlety – tworzenie, konfiguracja, wdrożenie • Przykład: 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(); } Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 23
  • 24. Serwlety – tworzenie, konfiguracja, wdrożenie • Istnieje możliwośd dołączenia do odpowiedzi nagłówków i ciasteczek: o void addHeader(String nazwa, String wartosc) o void addCookie(Cookie ciastko) gdzie c jest obiektem reprezentującym pojedyncze ciastko (javax.servlet.http.Cookie) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 24
  • 25. Serwlety – tworzenie, konfiguracja, wdrożenie • Aby pobrad parametry przesłane w żądaniu (czy to za pomocą metody GET, czy też POST), należy skorzystad z metody typu HttpServletRequest: • String getParameter(String nazwa) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 25
  • 26. Serwlety – obsługa sesji • Dostępna za pomocą metody getSession() obiektu żądania • Reprezentowana za pomocą klasy HttpSession • Kluczowe metody: o getAttribute() i setAttribute() o invalidate() – czyści sesję o isNew() – określa, czy sesja została utworzona w ramach aktualnego żądania Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 26
  • 27. Atrybuty i ich zasięgi • W aplikacjach Java EE istnieje możliwośd umieszczania danych w różnych zasięgach • Przykład – sesja i metody get/setAttribute() • Oprócz tego można deklarowad atrybuty w zasięgach żądania i kontekstu aplikacji Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 27
  • 28. Atrybuty i ich zasięgi • W przypadku żądania dostęp do atrybutów regulują metody get/setAttribute typu HttpServletRequest • Kontekst aplikacji to specjalny obiekt, który udostępnia informacje na temat całej aplikacji i umożliwia dynamiczne modyfikowanie struktury aplikacji (np. dodawanie serwletów) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 28
  • 29. Atrybuty i ich zasięgi • Atrybuty umieszczone w zasięgu kontekstu są dostępne w obrębie całej aplikacji! • Dostęp do atrybutów jest możliwy za pomocą metody get/setAttribute typu ServletContext • Instancja typu ServletContext jest dostępna na różne sposoby, m.in. przy użyciu obiektu żądania (req.getServletContext()) lub samego serwletu (this.getServletContext() w metodach doGet()/doPost()) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 29
  • 30. Atrybuty i ich zasięgi • Korzystając z atrybutów o zasięgu kontekstu należy pamiętad o możliwości współbieżnego dostępu przez różnych klientów • Z tego względu warto synchronizowad metody/fragmenty kodu, które modyfikują mapę atrybutów Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 30
  • 31. Cykl życia aplikacji a obiekty nasłuchujące • Java EE udostępnia szereg obiektów nasłuchujących, dzięki którym istnieje możliwośd reagowania na różne sytuacje, które mają miejsce podczas działania aplikacji • Najpierw należy wybrad interfejs, który udostępnia żądane zdarzenia, a następnie dodad niezbędną informację do pliku web.xml Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 31
  • 32. Cykl życia aplikacji a a obiekty nasłuchujące • Zdarzenia cyklu życia dla obiektów różnych zasięgów: o ServletRequestListener – dla żądao: • requestInitialized, requestDestroyed o HttpSessionListener – dla obiektów sesji • sessionCreated, sessionDestroyed o ServletContextListener – dla kontekstu aplikacji • contextInitialized, contextDestroyed Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 32
  • 33. Cykl życia aplikacji a obiekty nasłuchujące • Zdarzenia modyfikacji atrybutów o różnych zasięgach: o ServletRequestAttributeListener: • attributeAdded, attributeRemoved, attributeReplaced o ServletContextAttributeListener: • j.w. o HttpSessionAttributeListener: • j.w. Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 33
  • 34. Cykl życia aplikacji a obiekty nasłuchujące • Zdarzenia odpowiedzialne za informowanie obiektów o umieszczeniu ich w zasięgu sesji: o HttpSessionBindingListener: • valueBound() – obiekt został dodany do mapy atrybutów o zasięgu sesji • valueUnbound() – obiekt został usunięty z mapy atrybutów o zasięgu sesji Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 34
  • 35. Cykl życia aplikacji a obiekty nasłuchujące • Zdarzenia odpowiedzialne za informowanie obiektów o przeniesieniu sesji do innej maszyny wirtualnej o HttpSessionActivationListener: • sessionDidActivate() – sesja została aktywowana po przeniesieniu z innej VM • sessionWillPassivate() – sesja zostanie wyłączona w celu przeniesienia do innej VM Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 35
  • 36. Cykl życia aplikacji a obiekty nasłuchujące • Po utworzeniu klasy obiektu nasłuchującego należy dodad niezbędny kod do pliku web.xml (lub zastosowad adnotację): <listener> <listener-class>szkolenie.sluchacze.SluchaczSesji</listener-class> </listener> Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 36
  • 37. Bezpieczeostwo • Aplikacje webowe pozwalają na konfigurację różnych aspektów bezpieczeostwa w pliku web.xml (w Java EE 6 także za pomocą adnotacji) • Konfiguracja ta jest zupełnie odseparowana od kodu serwletów czy też stron JSP – pomijając opcjonalne mechanizmy, z których można korzystad (np. sprawdzenie, czy użytkownik przynależy do roli) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 37
  • 38. Bezpieczeostwo • Najważniejsze aspekty konfiguracji bezpieczeostwa: o określenie ról aplikacji o określenie źródła danych bezpieczeostwa (w przypadku serwera Apache Tomcat może byd to statyczny plik tomcat- users.xml, a mogą byd to wybrane tabele z bazy danych) Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 38
  • 39. Bezpieczeostwo • Najważniejsze aspekty konfiguracji bezpieczeostwa: o określenie wzorców URL, których dotyczą reguły bezpieczeostwa, wraz z dozwolonymi metodami HTTP o powiązanie wzorców i ról (w pliku web.xml), a także ról i użytkowników (np. w bazie danych) pozwala na utworzenie kompletnego systemu bezpieczeostwa w aplikacji Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 39
  • 40. Bezpieczeostwo • Najważniejsze aspekty konfiguracji bezpieczeostwa: o Istnieją też dodatkowe aspekty, jak określenie minimalnego stopnia zabezpieczeo (np. SSL), metody uwierzytelniania, itd. • Separacja ustawieo bezpieczeostwa od kodu Java pozwala na przydział zadao związanych z konfiguracją i bezpieczeostwem np. innemu pracownikowi Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 40
  • 41. Bezpieczeostwo • Przykład: <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> Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 41
  • 42. Filtry a żądania • Filtr to mechanizm, który pozwala na wykonanie pewnej czynności przed przekazaniem sterowania do odpowiedniego serwletu • Filtry, podobnie jak serwlety, mogą byd aplikowane do wzorców URL Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 42
  • 43. Filtry a żądania • Filtry są stosowane wszędzie tam, gdzie konieczna jest wstępna obróbka żądao, np.: o rejestrowanie informacji w dzienniku o szyfrowanie/deszyfrowanie o kompresja o dynamiczna decyzja o przekazaniu sterowania do serwletu Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 43
  • 44. Filtry a żądania • Przykład: // przekaż sterowanie do serwletu, jeśli 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 obsługą"); if (request.getParameter("nazwaUzytkownika")!=null) chain.doFilter(request, response); System.out.println("Po obsłudze"); } public void init(FilterConfig fConfig) throws ServletException {} @Override public void destroy() {} } Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 44
  • 45. Filtry a żądania • Przykład (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> Tworzenie aplikacji internetowych z użyciem platformy Java EE copyright BNS MEDIA www.devcastzone.com 45
  • 46. Tworzenie aplikacji internetowych z użyciem platformy Java EE – program pełnego szkolenia 1. Wprowadzenie do świata aplikacji webowych Java EE o Aplikacje webowe a okienkowe – porównanie modeli o Pojęcia związane z tworzeniem aplikacji webowych o Stos aplikacji webowej Java EE o Konfiguracja środowiska do pracy 2. Scala – składnia języka, funkcje, zmienne, pakiety, klasy o Struktura aplikacji webowej o Omówienie pliku konfiguracyjnego web.xml o Serwlet od podstaw – tworzenie i konfiguracja o Serwlety – obsługa sesji o Atrybuty i ich zasięgi o Cykl życia aplikacji a obiekty nasłuchujące o Bezpieczeostwo o Filtry a żądania Programowanie w języku Scala copyright BNS MEDIA www.devcastzone.com 46
  • 47. Tworzenie aplikacji internetowych z użyciem platformy Java EE – program pełnego szkolenia 3. JSP – tworzenie interfejsów użytkownika o JSP jako metoda separacji widoku od serwletów o Przekazywanie informacji do stron JSP o Expression Language – język wyrażeo o Wyrażenia i operatory o Akcje, czyli specjalne znaczniki JSP o Dyrektywy JSP o Legacy code – na co uważad w przestarzałym kodzie 4. JSTL – biblioteka wspomagająca działanie JSP o JSTL – krótka charakterystyka o Znaczniki bazowe (rdzeo) o Znaczniki funkcyjne o Znaczniki formatujące Programowanie w języku Scala copyright BNS MEDIA www.devcastzone.com 47
  • 48. Tworzenie aplikacji internetowych z użyciem platformy Java EE – program pełnego szkolenia 5. Obsługa danych przy użyciu JDBC i JPA o JDBC – podstawowy mechanizm obsługi bazy danych w Javie o Separacja kodu obsługi JDBC od serwletów o JPA – struktura i zasady działania o Adnotacje JPA jako sposób oznaczania klas encji o Wdrożenie JPA w aplikacji webowej 6. Nowości w Java EE 6 o Adnotacje jako narzędzie do konfigurowania serwletów o Uwierzytelnianie na poziomie serwletów o Wywołania asynchroniczne o Modularnośd a konfiguracja w pliku web.xml Programowanie w języku Scala copyright BNS MEDIA www.devcastzone.com 48
  • 49. Tworzenie aplikacji internetowych z użyciem platformy Java EE http://www.devcastzone.com/course,tworzenie-aplikacji- internetowych-z-uzyciem-platformy-java-ee Zapraszamy Programowanie w języku Scala copyright BNS MEDIA www.devcastzone.com 49