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

Podobne dokumenty
Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

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

Komunikacja między serwletami

prepared by: Programowanie WWW Servlety

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

Architektury Usług Internetowych. Laboratorium 1 Servlety

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

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Java wybrane technologie spotkanie nr 3. Serwlety

Java Server Faces - wprowadzenie

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

Piotr Laskowski Krzysztof Stefański. Java Servlets

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

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

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Zaawansowane aplikacje internetowe laboratorium

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

Aplikacje internetowe - laboratorium

prepared by: Programowanie WWW Model-View-Controller

Programowanie w języku Java

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


Serwery aplikacji. dr Radosław Matusik. radmat

Aplikacje Internetowe, Servlety, JSP i JDBC

Zagadnienia Programowania Obiektowego Agata Hejmej

Aplikacje internetowe i rozproszone - laboratorium

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

Java wybrane technologie spotkanie nr 5. Java Server Pages

Wybrane działy Informatyki Stosowanej

Serwery aplikacji. dr Radosław Matusik. radmat

Aplikacje RMI Lab4

Wzorce prezentacji internetowych

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Tworzenie i wykorzystanie usług

Orange Send MMS. Autoryzacja. Metoda HTTP. Parametry wywołania. API wyślij MMS dostarcza wiadomości MMS. Basic POST

Oracle9iAS: instalacja i konfiguracja aplikacji J2EE

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

Programowanie obiektowe zastosowanie języka Java SE

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

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

Testowanie aplikacji Java Servlets

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Kurs WWW 1. Paweł Rajba

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Podstawowe pojł cia. Czego sił nauczymy? Pojł cia hosta. Hosty Adresowanie Internetowe Porty Protokoóy

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

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

Backend Administratora

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

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

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

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

akademia androida Składowanie danych część VI

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Przegląd technologii JSP

Architektury Usług Internetowych. Laboratorium 1. Servlety

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium

Wywoływanie metod zdalnych

Programowanie wielowarstwowe i komponentowe

JAX-RS czyli REST w Javie. Adam Kędziora

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Aplikacje w środowisku Java

Java wybrane technologie

Załącznik 2 utworzenie projektu

J2EE wzorce projektowe. Alicja Truszkowska

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Remote Method Invocation 17 listopada 2010

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Podejście obiektowe do budowy systemów rozproszonych

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Aplikacje www laboratorium

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Java jako język programowania

Programowanie obiektowe

Testowanie podstawowej konfiguracji serwera w środowisku NetBeans

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wywoływanie metod zdalnych

Aplikacje RMI

Konfiguracja współpracy urządzeń mobilnych (bonowników).

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

Multimedia JAVA. Historia

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Java wybrane technologie

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

Java EE: Serwlety i filtry serwletów

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHNICZNA 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Transkrypt:

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

Co dziś będziemy robić Filtry, wywoływanie filtrów, wywołania łańcuchowe filtrów, tagi w web.xml, przekazywanie context parametrów, ServletConfig.

Filtry Filtry używane są aby przechwycić zapytanie od użytkownika do servletu, lub innego zasobu serwera, i wykonać prace logiczne. Przykładowo filtry używane są najczęściej do autoryzacji użytkowników, kompresji danych, szyfrowania danych, konwersji obrazów, logowania, autentykacji, tokenizacji czy parsowania dokumentów xml etc. Filtry wywoływane są na podstawie zapisów w pliku web.xml i odpowiedniego ich mapowania na zasoby serwera. Filtr to klasa javy implementująca interfejs javax.servlet.filter Klasa ta posiada 3 metody: public void dofilter (ServletRequest, ServletResponse, FilterChain) Metoda ta wywoływana jest za każdym razem, gdy zapytanie pasuje do łańcucha wywołań filtru. public void init(filterconfig filterconfig) public void destroy()

Mapowanie Filtrów Aby utworzyć filtr umieszczamy w pliku web.xml tag <filter> a wewnątrz niego: <filter-name> nazwa filtru do odwoływania się do niego <filter-class> klasa implementująca ten filtr <init-param> opcjonalnie parametry inicjalizacyjne: <param-name> nazwa parametru <param-value> wartość parametru Dodatkowo aby powiązać go z akcją w tagu <filter-mapping>: <filter-name> nazwa filtru <url-pattern> zapis wzorca zapytania, do którego będzie dopasowany filtr (można go także zastąpić mapowaniem przez <servlet-name>) Można zastosować kilka filtrów do jednego zapytania, tworzymy wtedy tak zwany łańcuch wywołań filtra. Oznacza to, że filtry będą wywoływane łańcuchowo - każdy następny zostanie wywołany gdy poprzedni zakończy swoje działanie - nim zostanie udzielony dostęp do zasobu kryjącego się pod tym adresem.

Wywołania łańcuchowe filtrów <filter> <filter-name>logfilter</filter-name> <filter-class>logfilter</filter-class> </filter> <filter> <filter-name>authenfilter</filter-name> <filter-class>authenfilter</filter-class> <init-param> <param-name>test-param</param-name> <param-value>initialization Paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>logfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>authenfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> W ten sposób zostanie wywołany wpierw filtr LogFilter, a następnie gdy ten zakończy swoje działanie (może) zostanie wywołany filtr AuthenFilter. Jeśli chcemy to zrobić na odwrót, to wystarczy zamienić miejscami <filter-mapping>: <filter-mapping> <filter-name>authenfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>logfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

web.xml Plik web.xml pozwala nam na określenie zachowania aplikacji. Na przykład taka prosta sprawa jak ikonka aplikacji: <small-icon> pozwala nam określić małą ikonę 16x16 px dla aplikacji lub servletu <large-icon> j/w ale dużą ikonę 32x32 px <listener-class> (w <listener>) definiuje klasę implementującą listenera (musi być umieszczony on po filtrze ale przed mapowaniem servletu) <jsp-file> może być stosowane zamiast <servlet-class>, podaje pełną ścieżkę do pliku jsp reprezentującego stronę <load-on-startup> ładuje srevlet przy starcie, opcjonalnie może zawierać liczbę naturalną dodatnią, która określa kolejność wywoływania servletów (bez liczby serwer może wywoływać servlety z tym parametrem losowo <init-param> parametry inicjalizacyjne zawierają one dodatkowo: <param-name> nazwa parametru <param-value> wartość parametru <description> opcjonalny opis parametru

web.xml c.d. <mime-mapping> wiąże rozszerzenie plików z typem mime <extension> rozszeżenie np. txt <mime-type> typ mime do plików o podanym rozszerzeniu np. text/plain <welcome-file-list> lista plików welcome, jeśli niema jednego to próbuje następny <welcome-file> plik welcome np. index.html <error-page> strony errorów <error-code> kod błędu HTTP np. 404 <exception-type> klasa błędu rzucanego przez kod java <location> adres zasobu do załadowania w wypadku wywołania danego błędu <taglib> dla jsp ładuje taglib <taglib-location> deskryptor biblioteki (reatywny do głównego katalogu) <taglib-uri> adres URI relatywny do położenia pliku web.xml Dodatkowo aby oddzielić konfiguracje dla JSP możemy użyć tagu <jsp-config> a tu umieszczamy np. <taglib>...</taglib>

Przekazanie parametrów do servletu Aby przekazać parametry do servletu można użyć tagu <context-param>, który jest tagiel globalnym, więc każdy servlet ma do nich dostęp poprzez ServletConfig. <context-param> posiada: <param-name> nazwę, po której go wyszukamy <param-value> wartość W pliku web.xml: <context-param>! <param-name>host</param-name>! <param-value>localhost</param-value> </context-param> <context-param>! <param-name>port</param-name>! <param-value>8889</param-value> </context-param> <context-param>! <param-name>usr</param-name>! <param-value>root</param-value> </context-param> <context-param>! <param-name>pass</param-name>! <param-value>root</param-value> </context-param> <context-param>! <param-name>driver</param-name>! <param-value>com.mysql.jdbc.driver()</param-value> </context-param>

ServletConfig Gdy już mamy parametry w pliku konfiguracyjnym, to teraz wystarczy je wciągnąć do servletu. W metodzie init możemy skożystać z ServletConfig i za pomocą metody getservletcontext() pobrać kontekst servletu, a z niego za pomocą metody getinitparameter(string) pobrać parametr o nazwie przekazanej przez string. Przykład poniżej pokazuje uzyskanie konfiguracji dla połączenia z bazą danych. W servlecie: public void init(servletconfig sc) throws ServletException {! this.servlconf = sc;! this.host = "jdbc:mysql://" + sc.getservletcontext().getinitparameter("host")!!!! + ":" + sc.getservletcontext().getinitparameter("port") + "/?useunicode=yes&characterencoding=utf8";! this.usr = sc.getservletcontext().getinitparameter("usr");! this.pass = sc.getservletcontext().getinitparameter("pass");! this.ses = null;! this.logged = false;! this.driver = sc.getservletcontext().getinitparameter("driver");! this.rss = sc.getservletcontext().getinitparameter("rss"); }

Dziękuję za uwagę!