Architektury Usług Internetowych. Laboratorium 1 Servlety

Podobne dokumenty
Architektury Usług Internetowych. Laboratorium 1. Servlety

prepared by: Programowanie WWW Servlety

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

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

Piotr Laskowski Krzysztof Stefański. Java Servlets

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

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Aplikacje internetowe i rozproszone - laboratorium

Enterprise JavaBeans (EJB)

1 Wprowadzenie do J2EE

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

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

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

prepared by: Programowanie WWW Model-View-Controller

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

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

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

Zaawansowane aplikacje internetowe

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

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

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

Aplikacje internetowe - laboratorium

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

Aplikacje internetowe - laboratorium

Java wybrane technologie spotkanie nr 3. Serwlety

Java Server Faces - wprowadzenie

Przegląd technologii JSP

Komunikacja między serwletami

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

Aplikacje WWW - laboratorium

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

Laboratorium 6 Tworzenie bloga w Zend Framework

Serwery aplikacji. dr Radosław Matusik. radmat

Java EE: Serwlety i filtry serwletów

Platformy Technologiczne

Wzorce prezentacji internetowych

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie w języku Java

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

In»ynieria systemów informacyjnych - Adam Krechowicz

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

JavaServer Pages. Konrad Kurdej Karol Strzelecki

Laboratorium 7 Blog: dodawanie i edycja wpisów

Aplikacje Internetowe, Servlety, JSP i JDBC

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Testowanie podstawowej konfiguracji serwera w środowisku NetBeans

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

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

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Wybrane działy Informatyki Stosowanej

OpenLaszlo. OpenLaszlo

Java Database Connectivity

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Zastosowanie komponentów EJB typu Session

Wybrane działy Informatyki Stosowanej

Aplikacje RMI Lab4

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

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

Testowanie aplikacji Java Servlets

Laboratorium 1 Wprowadzenie do PHP

Tworzenie usług internetowych. Servlety cz. 1

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Wprowadzenie do projektu QualitySpy

Załącznik 2 utworzenie projektu

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Aplikacje RMI

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

Wybrane działy Informatyki Stosowanej

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

Enterprise JavaBeans

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1


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

Tworzenie i wykorzystanie usług

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

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

Wprowadzenie do Doctrine ORM

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

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Java w Internecie - czy to ma sens? ;)

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Aplikacje www laboratorium

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

Podstawowe wykorzystanie Hibernate

Zaawansowane aplikacje internetowe

Wybrane działy Informatyki Stosowanej

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Zaawansowane aplikacje internetowe laboratorium

Katalog książek cz. 3: Web Service

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

Modele danych walidacja widoki zorientowane na model

Platformy Technologiczne

Transkrypt:

Architektury Usług Internetowych Laboratorium 1 Servlety Wstęp Celem laboratorium jest zapoznanie się z modelem klient-serwer (żądanieodpowiedź) 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 wykonywane 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.1/2.3 8.0.x 8.0.14 1.7 3.0/2.2 7.0.x 7.0.56 1.6 2.5/2.1 6.0.x 6.0.41 1.5 Integracja z NetBeans IDE Minimum Java Version Najnowsza wersja NetBeans IDE (8.0.1) może być zainstalowana już z zintegrowanym Apache Tomcat 8.0.9. 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 exist. 2010-2014 Michał Wójcik 1

Przygotowanie projektu Aby przygotować aplikację webową w środowisku NetBeans jako typ nowego projektu należy wybrać Maven/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 (Java EE 7 Web). Resztę ustawień można pozostawić bez zmian. Ustawienia dotyczące serwera można później modyfikować we właściwościach projektu w zakładce run. Struktura stworzonego projektu jest następująca (niektóre pozycje mogą nie występować w nowo stworzonym projekcie): 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; Remote Files zdalne pliki, do których odwołania pojawiaja się na stronach HTML, Source Packages źródła projektu, Other sources niekompilowalne źródła projektu (np. pliki properties): src/main/resources zasoby: META INF; Dependencies zależności projektu, zewnętrzne biblioteki: javaee web api 7.0.jar biblioteka zawierająca interfejsy i klasy zdefiniowane w standardzie Java EE; Java Dependencies środowisko uruchomieniowe, Project Files pliki konfiguracyjne: pom.xml plik konfiguracyjny nardzędzia budowania projektu Apache Maven. Struktura serwletu public class MyServlet extends HttpServlet { @Override protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { 2010-2014 Michał Wójcik 2

@Override protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { Podstawowe metody serwletu: 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. Zasięg sesji W ramach aplikacji webowej, można umieszczać obiekty w zasięgu sesji. Takie obieky będą dostępne z poziomu rządań wysyłanych w ramach jednej sesji użytkownika. Z poziomu servletu 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. Zasięg aplikacji W ramach aplikacji webowej, można umieszczać obiektu w zasięgu aplikacji. Takie obiekty będą dostępne z poziomu dowolnego żądania. 2010-2014 Michał Wójcik 3

Z poziomu servletu zasięg aplikacji jest obiektem klasy ServletContext. Może zostać pobrany np. Poprzez wywołanie odpowiedniej metody servletu: getservletcontext(). Podstawowe operacje na obiekcie kontekstu: Object getattribute(string name) pobranie obiektu z zasięgu aplikacji, void setattribute(string name, Object obj) dodanie obiektu do zasięgu aplikacji, void removeattribute(string name) usunięcie obiektu z zasiegu aplikacji. Konfiguracja Dla wersji 3.0 i 3.1 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="MyServlet", urlpatterns="/myservlet") public class MyServlet extends HttpServlet { Parametry name i urlpatterns określają kolejno nazwę serwleta oraz adresy pod którymi jest on dostępny. Dla wersji 2.5 Serwlet należy zdefiniować w pliku WEB INF/web.xml poprzez wpis: <servlet> <servlet name>myservlet</servlet name> <servlet class>myservlet</servlet class> </servlet> <servlet mapping> <servlet name>myservlet</servlet name> <url pattern>/myservlet</url pattern> </servlet mapping> Sekcja <servlet> określa klasę i nazwę serwletu, natomiast <servletmapping> określa adres pod, którym będzie znajdował się serwlet. Wysyłanie żądania do serwletu Przykładowe wywołanie serwletu za pomocą formularza HTML: 2010-2014 Michał Wójcik 4

<form action="myservlet" method="post"> <input type="text" name="nazwa" value="wartosc"/> <input type="submit" value="wyslij"/> </form> 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 request.getparameter(). Przykładowe wywołanie serwletu za pomocą JavaScript + jquery: <script> $.getjson('myservlet', {'nazwa': 'wartosc', function (data) { </script> Wartości w tablicy będącej drugim argumentem funkcji getjson będzie mozna pobrać z obiektu żądania za pomocą metody request.getparameter(). Elementy przykładu Strony HTML: index.html po prostu index, list_books.html wyświetlanie biblioteki i książek oznaczonych do przeczytania, edit_book.html edycja istniejącej lub nowej ksiązki. Klasy: BooksContext obiekt przechowujący ksiązki, pozwalający na ich wyszukiwanie i zapisywanie, powinien być umieszczony w zasięgu aplikacji, Book reprezentacja ksiązki, ServletListener logowanie zdarzeń związanych z kontenerem servletu, CoverServlet servlet generujący okładki książek, BookServlet sevlet zarządzający książkami odpowiadajacy na żądania wysłane z formularza, BookAjaxServlet servlet zarządzający książkami odpowiadający na żądania wysłane przez JavaScript. 2010-2014 Michał Wójcik 5

Przykład pozwala na wyświetlanie listy książek wraz z ich okładkami zapisanymi w zasięgu całej aplikacji (w beanie BooksContext). Zapisane książek w zasięgu aplikacji powoduje że wszelkie zmiany na liście książek (dodanie nowej lub edycja istniejącej) będą widoczne w ramach wszystkich aktywnych i nowych sesji użytkownika. Strona index.html zawiera jedynie odnośnik przekierowujący do strony list_books.html zawierającą listę książek. Strona list_books.html wyświetla dwie tabelki (lista wszystkich książek i lista książek oznaczonych do przeczytania). Zawartość strony jest ściągana z servletu BookAjaxServlet (dostępnego pod adresem books/ajax) i wrzucana do dynamicznie stworzonych tabel za pomocą kodu JavaScript. Dla każdej książki wyświetlany jest jej opis, okładka (pobierana z servletu CoverServlet dostępnego pod adresem cover) oraz przyciski pozwalające na edycja oraz oznaczenie książki do przeczytania. Do przycisku oznaczającego książkę podpięta jest asynchroniczna akcja wysyłana do sevletu BookAjaxServlet i aktualizująca drzewo komponentów. Przycisk edycji przenosi na stronę edit_book.html przekazując w parametrze adresu identyfikator książki do edycji. Strona edit_book.html pozwala na edycję istniejącej lub dodanie nowej książki. Dane wprowadzone przez użytkownika są wysyłane do servletu BookServlet (dostępnego pod adresem books) za pomocą zwykłego formularza. W przypadku edycji istniejącej książki, jej szczegóły są pobierane asynchronicznie zaraz po załadowaniu strony za pomocą kodu JavaScript z servletu BookAjaxServlet. Książki oznaczone do przeczytania są zapisywane w sesji w obiekcie ArrayList stworzonym w servlecie BookAjaxServlet. Należy pamiętać że obiekty przechowywane w zasięgu aplikacji i sesji powinny być serializowalne (powinny implementować interfejs Serializable). Przykładowe zadania W ramach laboratorium należy skonfigurować środowisko (Apache Tomcat) oraz uruchomić na nim przykładową aplikację. Następnie należy wprowadzić modyfikację wybraną przez prowadzącego. Modyfikacje mogą dotyczyć dodania obsługi nowej komendy do servletu (wraz odpowiednimi wywołaniami z poziomu JavaScript lub HTML), zmiany lub dodanie obiektów przechowywanych w zasięgu sesji lub aplikacji oraz zmiany istniejących funkcjonalności servletów (np. przez zmianę parametrów przez nie obsługiwanych). Po oddaniu zadania należy usunąć wszystkie swoje zmiany (ręcznie zainstalowany server Apache Tomcat lub stworzony prywatny katalog instancji serwera oraz projekt). 2010-2014 Michał Wójcik 6