Architektury Usług Internetowych. Laboratorium 1. Servlety

Podobne dokumenty
Architektury Usług Internetowych. Laboratorium 1 Servlety

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

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

prepared by: Programowanie WWW Servlety

Aplikacje internetowe i rozproszone - laboratorium

Java EE: Serwlety i filtry serwletów

b) Jako nazwę projektu wpisz SerwletyJSPJSTL. Nie zmieniaj wartości pozostałych opcji. Kliknij przycisk Next >.

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

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

Piotr Laskowski Krzysztof Stefański. Java Servlets

Java wybrane technologie spotkanie nr 3. Serwlety

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

prepared by: Programowanie WWW Model-View-Controller

Java Database Connectivity

Aplikacje WWW - laboratorium

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

Aplikacje WWW - laboratorium

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

JavaServer Pages. Konrad Kurdej Karol Strzelecki

In»ynieria systemów informacyjnych - Adam Krechowicz

Zaawansowane aplikacje internetowe

Tworzenie usług internetowych. Servlety cz. 1

1 Wprowadzenie do J2EE

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

Laboratorium 1 Wprowadzenie do PHP

Programowanie w języku Java

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

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

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

Podstawowe wykorzystanie Hibernate

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

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

Wybrane działy Informatyki Stosowanej

Przegląd technologii JSP

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

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

Java Server Faces - wprowadzenie

Zaawansowane aplikacje internetowe laboratorium

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

Wzorce prezentacji internetowych

Aplikacje WWW - laboratorium

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Serwery aplikacji. dr Radosław Matusik. radmat

Aplikacje internetowe - laboratorium

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

Java wybrane technologie spotkanie nr 5. Java Server Pages

Laboratorium 6 Tworzenie bloga w Zend Framework

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Aplikacje WWW - laboratorium

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

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

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Enterprise JavaBeans

Aplikacje internetowe - laboratorium

Aplikacje WWW - laboratorium

Enterprise JavaBeans (EJB)

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Aplikacje WWW - laboratorium

JAVA : APLIKACJE WEBOWE I JAVA EE WPROWADZENIE

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

Wprowadzenie do J2EE. Maciej Zakrzewicz.

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

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

Java rozszerzenie. dr. A. Dawid

Testowanie podstawowej konfiguracji serwera w środowisku NetBeans

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

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

mgr inż. Michał Paluch

Architektura Model-View-Controller

Aplikacje WWW - laboratorium

Tworzenie i wykorzystanie usług

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

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


Komunikacja między serwletami

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Projektowanie i wdrażanie systemów informatycznych. Dodanie aplikacji klienta uruchamianej przez przeglądarkę kontynuacja projektu:

Serwlety i JSP na platformie Java EE. Damian Makarow

Wybrane działy Informatyki Stosowanej

Serwery aplikacji. dr Radosław Matusik. radmat

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

TIN Techniki Internetowe Lato 2005

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Testowanie aplikacji Java Servlets

INSTALACJA I KONFIGURACJA SERWERA PHP.

Programowanie internetowe

akademia androida Składowanie danych część VI

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Aplikacje Internetowe, Servlety, JSP i JDBC

Przykładowa integracja systemu Transferuj.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Architektury Usług Internetowych. Laboratorium 3. Usługi w środowisku wielo-agentowym

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

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

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

Aplikacje RMI Lab4

Transkrypt:

Architektury Usług Internetowych Laboratorium 1. Servlety Wstęp Celem laboratorium jest zapoznanie się z modelem klient-serwer (żądanie-odpowiedź) na przykładzie serwletów. Kontener webowy Kontener webowy (kontener sevletu) jest to komponent serwera webowego zajmujący się interakcją z servletami i potencjalnie stronami JSP (dynamiczne strony tłumaczone i wykonywanie jako servlety). Istnieje kilka kontenerów webowych, gdzie do najpopularniejszych należą: Apache Tomcat http://tomcat.apache.org/, Jetty http://jetty.codehaus.org/jetty/. Na zajęciach wykorzystywany będzie serwer Apache Tomcat, który ze względu na kompatybilność dostępny jest w trzech utrzymywanych wersjach: Servlet/JSP Spec Apache Tomcat version Actual release revision 3.0/2.2 7.0.x 7.0.30 1.6 2.5/2.1 6.0.x 6.0.35 1.5 2.4/2.0 5.5.x 5.5.35 1.4 Minimum Java Version Integracja z NetBeans IDE Najnowsza wersja NetBeans IDE (7.2) może być zainstalowana już z zintegrowanym Apache Tomcat 7.0.27. Ponadto każdy z powyżej wymienionych wersji może być ręcznie zintegrowana z IDE. Zarządzanie serwerami odbywa się poprzez zakładkę services w zakładce servers. Można stamtąd dodawać/usuwać oraz uruchamiać/zatrzymywać serwery. W przypadku dodawania nowego serwera należy wybrać typ serwera Apache Tomcat i nadać mu odpowiednią nazwę. Następnie należy podać katalog gdzie zostały rozpakowane pliki serwera oraz nazwę użytkownika i hasło (np. netbeans/netbeans) pamiętając o zaznaczeniu pola Create user if does not exists. 2010-2012 Michał Wójcik 1

Przygotowanie projektu Aby przygotować aplikację webową w środowisku NetBeans jako typ nowego projektu należy wybrać Java Web/Web application. Po określeniu nazwy i lokalizacji projekty należy wybrać serwer na którym będzie uruchamiany oraz obowiązującą wersję Java EE. Resztę ustawień można pozostawić bez zmian. Ustawienia dotyczące serwera można później modyfikować we właściwościach projekt w zakładce run. Struktura stworzonego projektu jest następująca: Web Pages strony HTML aplikacji: META-INF: contex.xml deskryptor konfiguracji aplikacji specyficzny dla serwera Apache Tomcat; WEB-INF: web.xml standardowy deskryptor aplikacji webowej; Source Packages źródła projektu, Libraries wszystkie dodatkowe biblioteki: Apache Tomcat biblioteki serwera na którym będzie uruchamiana aplikacja, zawierają również standardowe biblioteki dla Java web. Struktura serwletu public class Repository extends HttpServlet { @Override public void init() throws ServletException { super.init(); @Override protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // @Override protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // Podstawowe metody serwletu: init inicjalizacja serwletu, wywoływana przy jego pierwszym uruchomieniu, 2010-2012 Michał Wójcik 2

doget obsługa żądań GET, dopost obsługa żądań POST. Parametry żądania i odpowiedzi: HttpServletRequest dostarcza informacje na temat żądania: String getparameter(string name) zwraca wartość parametru żądania, HttpServletResponse dostarcza informacje na temat odpowiedzi. Sesja Sesja jest obiektem klasy HttpSession. Może zostać pobrana np. poprzez wywołanie odpowiedniej metody na obiekcie żądania: request.getsession(). Podstawowe operacje na obiekcie sesji: Object getattribute(string name) pobranie obiektu z sesji, void setattribute(string name, Object obj) dodanie obiektu do sesji, void invalidate() - zniszczenie obiektu sesji, void removeattribute(string name) usunięcie obiektu z sesji. Wysyłanie żądania do serwletu Przykładowe wywołanie serwletu za pomocą formularza html: <form action="adres_serwletu"> <input type="text" name="param1" /> <input type="text" name="param2" /> <input type="submit" value="send" /> Wartości name dla kolejnych elementów w input definiują nazwy za pomocą, których będzie można pobrać z obiektu żądania za pomocą metody getparameter(). Konfiguracja Dla wersji 3.0 Serwlet można zdefiniować poprzez adnotację WebServlet na klasie implementującej dziedziczącej po HttpServlet. Sposoby konfiguracji z poprzednich wersji są nadal dostępne. @WebServlet(name="Repository", urlpatterns="/repository") public class Repository extends HttpServlet { Parametry name i urlpatterns określają kolejno nazwę serwleta oraz adresy pod którymi jest on dostępny. 2010-2012 Michał Wójcik 3

Dla wersji 2.5 i 2.4 Serwlet należy zdefiniować w pliku WEB-INF/web.xml poprzez wpis: <servlet> <servlet-name>repository</servlet-name> <servlet-class>pl.gda.pg.eti.kask.aui.servlets.repository</servlet-class> </servlet> <servlet-mapping> <servlet-name>repository</servlet-name> <url-pattern>/repository</url-pattern> </servlet-mapping> Sekcja <servlet> określa klasę i nazwę serwletu, natomiast <servlet-mapping> określa adres pod, którym będzie znajdował się serwlet. Dla wersji Przykład Przykład pozwala użytkownikom na zapisywanie notatek na czas trwania sesji oraz usunięcie wszystkich notatek (usunięcie sesji). W ramach laboratorium można wykorzystać gotowy projekt NetBeans dołączony do instrukcji. form.html: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> </head> <body> <form action="repository" method="post"> <input type="hidden" name="action" value="add" /><br /> id:<input type="text" name="id" /><br /> content:<input type="text" name="content" /><br /> <input type="submit" value="add note" /> <form action="repository" method="post"> <input type="hidden" name="action" value="clean" /><br /> <input type="submit" value="delete" /> <form action="repository" method="get"> <input type="hidden" name="action" value="display" /><br /> <input type="submit" value="display" /> </body> </html> 2010-2012 Michał Wójcik 4

Trzy formularze pozwalające na działanie na notatkach. Dodawanie pojedynczej notatki, usunięcie wszystkich notatek oraz wyświetlenie notatek. Każdy z formularzy ma ten sam parametr action określający akcję, którą powinien wykonać serwlet oraz dodatkowe parametry jeśli potrzebne. Notes.java: public class Notes implements Serializable { private Map<Integer,String> notes; public Notes() { this.notes = new HashMap<Integer,String>(); public Map<Integer, String> getnotes() { return notes; public void setnotes(map<integer, String> notes) { this.notes = notes; Repository.java: protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { String action = request.getparameter("action"); if (action == null) { else if (action.equals("clean")) { request.getsession().invalidate(); out.write(display(request.getsession())); else if (action.equals("display")) { out.write(display(request.getsession())); else if (action.equals("add")) { int id = Integer.parseInt(request.getParameter("id")); String content = request.getparameter("content"); add(request.getsession(), id, content); out.write(display(request.getsession())); finally { out.close(); 2010-2012 Michał Wójcik 5

Główna metoda serwletu (wywoływana przez metody dopost i doget) realizująca określone akcje w zależności od wartości parametry action. Wynik zostaje wysłany na wyjście odpowiedzi i zostaje wyświetlona w przeglądarce. 2010-2012 Michał Wójcik 6