Komunikacja między serwletami

Podobne dokumenty
Programowanie w Sieci Internet filtry oraz web.xml. Kraków, 11 stycznia 2013 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Java wybrane technologie spotkanie nr 4. Serwlety c.d.

Serwlety Java: zagadnienia zaawansowane. Data Sources. Data Sources. Przykład pliku data-sources.xml

Testowanie aplikacji Java Servlets

Architektury Usług Internetowych. Laboratorium 1 Servlety

Java wybrane technologie spotkanie nr 3. Serwlety

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

1 Wprowadzenie do J2EE

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Java EE: Serwlety i filtry serwletów

Architektury Usług Internetowych. Laboratorium 1. Servlety

Serwlety. Co to jest serwlet? Przykładowy kod serwletu. Po co są serwlety?

prepared by: Programowanie WWW Servlety

Wprowadzenie do JSP. Marcin Apostoluk, Tadeusz Pawlus, Wojciech Walczak. Technologie Biznesu Elektronicznego, 7 marzec 2006

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wybrane działy Informatyki Stosowanej

Przegląd technologii JSP

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Piotr Laskowski Krzysztof Stefański. Java Servlets

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775)

Testowanie podstawowej konfiguracji serwera w środowisku NetBeans

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Oracle9iAS: instalacja i konfiguracja aplikacji J2EE

Java jako j zyk programowania serwerów WWW / aplikacji Webowych servlety

JavaServer Pages. Konrad Kurdej Karol Strzelecki

ul. Pogodna Olsztyn codeit@codeit.pl

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09

Wybrane działy Informatyki Stosowanej

STRUTS 2. Krystyna Bury Katarzyna Sadowska Joanna Pyc Politechnika Wrocławska Wydział Informatyki i Zarządzania Informatyka, III rok

Serwlety i JSP na platformie Java EE. Damian Makarow

Java Server Faces - wprowadzenie

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zagadnienia Programowania Obiektowego Agata Hejmej

Zagadnienia projektowania aplikacji J2EE

Aplikacje WWW - laboratorium

OpenLaszlo. OpenLaszlo

mgr inż. Michał Paluch

Czym są serwlety Java? Serwlety Java. Zalety serwletów Java (w porównaniu z CGI)

Java Enterprise Edition spotkanie nr 3. Serwlety c.d.

PaaS technologie i standardy. Paulina Adamska tiia@pjwstk.edu.pl

J2EE wzorce projektowe. Alicja Truszkowska

Head First Servlets & JSP. Edycja polska

Wybrane działy Informatyki Stosowanej

Programowanie w języku Java

Aplikacje Internetowe, Servlety, JSP i JDBC

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Podstawowe wykorzystanie Hibernate

Java Servlet i Java Server Pages

Serwlety i JSP. Autor: Marek Zawadka deekay@gazeta.pl

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

TIN Techniki Internetowe Lato 2005

Wzorce prezentacji internetowych

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

Zaawansowane Techniki Bazodanowe

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

JAVA EE 8. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Szczegółowy opis przedmiotu zamówienia:

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Analiza porównawcza technologii tworzenia aplikacji internetowych dla baz danych Oracle

Apache i okolice... Jacek Prucia jacek.prucia@7bulls.com

Java wybrane technologie spotkanie nr 5. Java Server Pages

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Programowanie i projektowanie obiektowe

In»ynieria systemów informacyjnych - Adam Krechowicz

Web Tools Platform. Adam Kruszewski

Architektura Model-View-Controller

EJB 3.0 (Enterprise JavaBeans 3.0)

Java wybrane technologie

Java Enterprise Edition spotkanie nr 4. Java Server Pages c.d.

Szkolenie wycofane z oferty

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Analiza porównawcza technologii tworzenia aplikacji internetowych dla baz danych Oracle

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Head First Servlets & JSP. Edycja polska. Wydanie II

Enterprise JavaBeans

Wybrane działy Informatyki Stosowanej

Zaawansowane aplikacje internetowe laboratorium

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Kurs WWW 1. Paweł Rajba

Cocoon środowisko publikacyjne oparte na XML-u


Systemy internetowe Wykład 6 Architektura WWW - cd

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

1. Protokoły. Co programy wykorzystują do komunikacji przez sieć? wykorzystują protokoły komunikacyjne

Spis treści. Wprowadzenie do JEE Kamil Perczyński

Serwery LDAP w środowisku produktów w Oracle

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Poznań Java User Group Java Server Faces. Wprowadzenie (Fakty i Mity)

Transkrypt:

Poznań Java Users Group Komunikacja między serwletami Bartosz Walter Instytut Informatyki Politechniki Poznańskiej

Sceny z życia serwletów Obsługa żądań Żądanie Kontener GET / index.html HTTP/1.0 Serwlet <HTML> <HEAD> <BODY>... Odpowiedź

Sceny z życia serwletów Narodziny, życie i śmierć void init(servletconfig) Serwlet void service(servletrequest, ServletResponse) void destroy() javax.servlet.servlet

Sceny z życia serwletów Środowisko i konfiguracja Definicja nazwy serwleta Parametry serwleta Przypisanie serwleta do URLa web.xml <servlet> <servlet-name>serwlet_a</servlet-name> <servlet-class> moj.pakiet.servleta </servlet-class> <init-param> <param-name>parametr</param-name> <param-value>wartość</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>serwlet_a</servlet-name> <url-pattern>/a/*</url-pattern> </servlet-mapping>

Aplikacje się rozrastają... Zwiększamy funkcjonalność Pomysł 1: puchnący serwlet Serwlet Serwlet Serwlet

Aplikacje się rozrastają... Zwiększamy funkcjonalność Pomysł 2: specjalizowane serwlety Serwlet C Serwlet A Serwlet B Serwlet D

Aplikacje się rozrastają... Zwiększamy funkcjonalność A czego potrzebujemy? komunikacji między serwletami specjalizacji funkcjonalnej modularyzacji konfiguracji przez administratora

Rys historyczny cz. I Java Servlets TM 2.0 dawno temu, w odległej galaktyce... serwlet jako jednostka przetwarzająca żądania brak mechanizmów komunikacyjnych podstawowe mechanizmy obsługi żądań Apache JServ

Rys historyczny cz. II Java Servlets TM 2.1 listopad 1998 podstawy komunikacji między serwletami wprowadzenie pojęcia kontenera serwletów Apache Tomcat 3.1

Rys historyczny cz. III Java Servlets TM 2.2 grudzień 1999 wprowadzenie pojęcia aplikacji webowej rozszerzenie mechanizmu komunikacji między serwletami obserwatory zdarzeń Apache Tomcat 3.2

Rys historyczny cz. IV Java Servlets TM 2.3 sierpień 2001 mechanizm filtrowania zdarzenia w cyklu życia serwleta integracja z J2EE Apache Tomcat 4.x i Borland Enterprise Server

O czym chcemy mówić? Spis treści Komunikacja między serwletami jak to działa? modele przetwarzania Filtrowanie model przetwarzania filtrowanie żądań i odpowiedzi kilka sztuczek

Komunikacja między serwletami Żądanie Żądanie Kontener Serwlet A Serwlet B znajdź następny Odpowiedź Odpowiedź

Znajdowanie serwletów cz. I Sposób 1: podanie URLa Serwlet A Serwlet B znajdź następny / ctx / serwlet_a / ctx / serwlet_b muszę znać URL serwleta B!

Znajdowanie serwletów cz. II Sposób 2: podanie nazwy serwleta Serwlet A Serwlet B znajdź następny serwleta serwletb muszę znać nazwę serwleta B!

Komunikacja między serwletami Serwlet A Serwlet B Kontener Serwlet A Serwlet B

Metody komunikacji: forwarding Serwlet A Serwlet B Kontener znajdź następny RequestDispatcher rd = ctx.getrequestdispatcher ("/serwlet_b"); rd.forward(request, response); // nie ma powrotu do serwleta A

Metody komunikacji: including Serwlet A Serwlet B Kontener RequestDispatcher rd = ctx.getrequestdispatcher ("/serwlet_b"); rd.include(request, response); // powrót sterowania do serwleta A

Przykład MojSerwlet wyświetla stronę, zarządza prezentacją DBSerwlet odczytuje z bazy danych imię i nazwisko użytkownika MojSerwlet DBSerwlet Kontener

Wady i zalety Forwarding prosty, potokowy model quasi-filtrowanie problem z zatwierdzaniem odpowiedzi Including delegacyjny model przetwarzania problem z modularnością słaba konfigurowalność zmiana w topologii wymaga rekompilacji

Ogólna zasada filtrowania Żądanie Żądanie Kontener Filtr Serwlet A Odpowiedź Odpowiedź

Budowa filtra Filtr void init(filterconfig) void dofilter(servletrequest, ServletResponse, FilterChain) { // modyfikacja żądania chain.dofilter(request, response); // modyfikacja odpowiedzi } void destroy() javax.servlet.filter

Konfiguracja filtra Definicja nazwy filtra Parametry filtra web.xml <filter> <filter-name>filter_1</filter-name> <filter-class> moj.pakiet.filter1 </filter-class> <init-param> <param-name>parametr</param-name> <param-value>wartość</param-value> Przypisanie do URLa lub serwleta </init-param> </servlet> <filter-mapping> <filter-name>filter_1</filter-name> <url-pattern>/a/*</url-pattern> </servlet-mapping>

Przykład Filtr zmienia kodowanie żądania HTTP Serwlet przetwarza żądanie Filtr Serwlet Kontener

Filtry i opakowania Żądanie i odpowiedź są niezmienne! Zatwierdzonej odpowiedzi nie można modyfikować! HttpServletRequest HttpServletRequest Żądanie Filtr HttpServletRequest javax.servlet.httpservletrequestwrapper javax.servlet.httpservletresponsewrapper

Przykład Filtr modyfikuje odpowiedź HTTP Serwlet przetwarza żądanie Serwlet Filtr Kontener

Łańcuchy filtrów FilterChain FilterChain Filtr 1 Filtr 2 Filtr 3... chain.dofilter(request, chain.dofilter(request, response); response);

Konfiguracja łańcuchów Definicja nazw filtrów 1 i 2 Filtr 1 najpierw... web.xml <filter> <filter-name>filter_1</filter-name>... </servlet> <filter> <filter-name>filter_2</filter-name>... </servlet> <filter-mapping>...a potem filtr 2 <filter-name>filter_1</filter-name> <filter-name>filter_2</filter-name> <url-pattern>/a/*</url-pattern> </servlet-mapping>

Kolejność filtrów A co jeśli zmienimy kolejność filtrów? Filtr pl2en Filtr CesarianASCII ćma i koń cma i kon dnb j lpo Filtr CesarianASCII Filtr pl2en ćma i koń çma i koň çnb j lpň

Podsumowanie Droga serwletów do aplikacji klasy enterprise Większa elastyczność dzięki filtrom Konfiguracja przez administratora bez rekompilacji Pełna modularyzacja Przetwarzanie potokowe i zagnieżdżone

Pytania?