prepared by: Programowanie WWW Servlety

Podobne dokumenty
prepared by: Programowanie WWW Model-View-Controller

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

Architektury Usług Internetowych. Laboratorium 1. Servlety

Piotr Laskowski Krzysztof Stefański. Java Servlets

Programowanie w języku Java

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

Wzorce prezentacji internetowych

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

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

Java wybrane technologie spotkanie nr 3. Serwlety

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

Przegląd technologii JSP

Aplikacje internetowe i rozproszone - laboratorium

JavaServer Pages. Konrad Kurdej Karol Strzelecki

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

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

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

prepared by: Java Server Pages Sesje, cookies, znaczniki

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

Java Database Connectivity

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

1 Wprowadzenie do J2EE

Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z

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

Serwery aplikacji. dr Radosław Matusik. radmat

Java EE: Serwlety i filtry serwletów

Java w Internecie - czy to ma sens? ;)

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

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

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

Tworzenie usług internetowych. Servlety cz. 1

Java wybrane technologie spotkanie nr 5. Java Server Pages

Zaawansowane aplikacje internetowe laboratorium


Aplikacje Internetowe, Servlety, JSP i JDBC

In»ynieria systemów informacyjnych - Adam Krechowicz

Serwery aplikacji. dr Radosław Matusik. radmat

Aplikacje WWW - laboratorium

Java rozszerzenie. dr. A. Dawid

TIN Techniki Internetowe Lato 2005

Aplikacje WWW - laboratorium

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

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

Aplikacje WWW - laboratorium

Wybrane działy Informatyki Stosowanej

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

Aplikacje WWW - laboratorium

Tworzenie aplikacji internetowych w języku Java

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Java wybrane technologie

mgr inż. Michał Paluch

Komunikacja między serwletami

Zaawansowane aplikacje internetowe

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

JAVA : APLIKACJE WEBOWE I JAVA EE WPROWADZENIE

SOAP. Autor: Piotr Sobczak

Architektura Model-View-Controller

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

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

Aplikacje WWW - laboratorium

Wzorce projektowe warstwy aplikacji

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Java Server Faces - wprowadzenie

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

Aplikacje Internetowe. przygotował:

Serwlety i JSP na platformie Java EE. Damian Makarow

Aplikacje Internetowe. Zakres przedmiotu. Plan ramowy. Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Laboratorium 1 Wprowadzenie do PHP

Programowanie poprzez testy z wykorzystaniem JUnit

Podstawowe wykorzystanie Hibernate

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Serwery aplikacji. dr Radosław Matusik. radmat

Aktywne i dynamiczne strony WWW. Elementy projektowania stron WWW. Część 3. Formularze HTML przykład. Formularze HTML. dr inŝ.

Języki i metody programowania Java. Wykład 2 (część 2)

Google Web Toolkit Michał Węgorek ZPO 2009

Testowanie aplikacji Java Servlets

Tworzenie i wykorzystanie usług

Aplikacje WWW - laboratorium

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

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

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

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

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

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Kurs WWW 1. Paweł Rajba

Programowanie obiektowe

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Java wybrane technologie

MVC w praktyce tworzymy system artykułów. cz. 2

1) Przygotowanie środowiska pracy.

Aplikacje WWW - laboratorium

Testowanie podstawowej konfiguracji serwera w środowisku NetBeans

Programowanie obiektowe

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

Podstawy i języki programowania

Wybrane działy Informatyki Stosowanej

Transkrypt:

Programowanie WWW Servlety

Przypomnienie problemu Aplikacja do liczenia kredytów Klasa Kredyt Formatka do wprowadzania danych (czysty HTML) Skrypt liczący ratę (JSP wykorzystujące klasę Kredyt)

Klasa Kredyt public class Kredyt { double procent; double kwota; double lat; public double getprocent() { return procent; }... public void setprocent(double procent) { this.procent = procent; }

Klasa Kredyt cd public double getkwota() { return kwota;} public void setkwota(double kwota) { this.kwota = kwota; } public double getlat() { return lat; } public void setlat(double lat) { this.lat = lat; } public double getrata() { double rata = kwota * (procent/12)/ (1-(1/Math.pow(1.0+procent/12,lat*12))); return rata; } //nie ma setrata()!!! }

Formatka <form action="result.jsp"> kwota: <input type="text" name="kwota"><br/> ile lat: <input type="text" name="lat"><br/> procent: <input type="text" name="procent"><br/> <input type="submit"/> </form>

Skryplet z setterami <% pl.edu.swsim.kredyt kredyt = new pl.edu.swsim.kredyt(); kredyt.setkwota(double.parsedouble( request.getparameter("kwota"))); kredyt.setlat(double.parsedouble( request.getparameter("lat"))); kredyt.setprocent(double.parsedouble( request.getparameter("procent"))); out.write("<p>rata wynosi: "+kredyt.getrata()+"</p>"); %>

JSP z tagami <jsp:usebean id="credit" class="pl.edu.swsim.kredyt"> <jsp:setproperty name="credit" property="kwota" param="kwota"/> <jsp:setproperty name="credit" property="procent" param="procent"/> <jsp:setproperty name="credit" property="lat" param="lat"/> </jsp:usebean> Rata: <jsp:getproperty name="credit" property="rata"/>

JSP z tagami <jsp:usebean id="credit" class="pl.edu.swsim.kredyt"> <jsp:setproperty name="credit" property="kwota" param="kwota"/> <jsp:setproperty name="credit" property="procent" param="procent"/> <jsp:setproperty name="credit" property="lat" param="lat"/> </jsp:usebean> Rata: ${credit.rata}

Użycie tagów Unikamy kodu w Javie na stronie JSP Problem: niektóre rzeczy łatwiej napisać w Javie Zalety czystej Javy (względem tagów na stronie JSP) Łatwiejszy dostęp do zasobów Bieżąca kontrola poprawności kodu Łatwiejsze debugowanie Możliwość testowania poza serwerem WWW Prosta obsługa błędów Plan na dziś: Tworzenie servletów Połączenie servletu i strony JSP

Servlet Obiekt umieszczony w kontenerze servletów i uruchamiany wywołaniem Kontener dba o przydział servletów do wywołań (pula servletów) Klasy bazowe: GenericServlet Metoda service(request, response) HttpServlet Metody doxxx(request, response) dla każdego typu wywołania

Tworzenie servletu Servlet to klasa dziedzicząca po HttpServlet Dwie podstawowe metody: doget(httpservletrequest req, HttpServletResponse resp) dopost(httpservletrequest req, HttpServletResponse resp) Wypisanie tekstu HTML: PrintWriter out = response.getwriter(); out.println("hello");

Przykład servletu public class HelloServlet extends HttpServlet { protected void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { } } res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<h1>hello World!</h1>"); out.close();

Struktura aplikacji Servlety w WEB-INF/classes Deskryptor aplikacji WEB-INF/web.xml Definicja jakie są servlety i do jakich adresów URL Definicja jakie są servlety i do jakich adresów URL aplikacji są przypięte

Najprostszy web.xml <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/webapp_2_4.xsd" version="2.4"> <!-- definicja servletu --> <servlet> <servlet-name>hello</servlet-name> <servlet-class>pl.kurs.helloservlet</servlet-class> </servlet> <!-- mapowanie servletu --> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> ćwiczenie

Stworzenie servletu Tworzymy bezpośrednio kod servletu zamiast strony JSP public class MyController extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.getwriter().println("hello from GET"); } public void dopost(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.getwriter().println("hello from POST"); }

Dostęp do zasobów getservletcontext() Wspólny kontekst servletów (poziom aplikacji) request.getsession() Sesja request Żądanie Zmienne lokalne Poziom strony (page)

Przekierowania Servlet może przekierować żądanie dalej Do następnego serwletu Do strony JSP Do znalezienia servletu używany jest RequestDispatcher getservletcontext().getrequestdispatcher("adres") Metody: forward(request,response) include(request,response) Kolejny servlet używa tego samego requesta W ten sposób można zrealizować komunikację

Tworzenie łańcucha servletów Servlet może pobrać z kontekstu obiekt RequestDispatcher: getservletcontext().getrequestdispatcher("url") Dwie metody: forward(request, response) include(request, response) Przekierowanie wywołania: getservletcontext().getrequestdispatcher("/form.jsp").forward(request, response); Przed przekierowaniem można umieścić dane w request: request.setattribute("klucz",dowolnadana);

Przykład Servlet TimeTable Servlet Time używane kilkukrotnie z różnymi parametrami

Servlet TimeTable PrintWriter out = res.getwriter(); out.print("lokalny czas: "); getservletcontext().getrequestdispatcher("/time").include(req,res); out.print("czas w Londynie: "); request.setattribute("zone", "GMT"); getservletcontext().getrequestdispatcher("/time").include(req,res); out.print("czas w Tokyo: "); request.setattribute("zone", "Japan"); getservletcontext().getrequestdispatcher("/time").include(req,res);

Servlet Time PrintWriter out = res.getwriter(); Date date = new Date(); DateFormat df = DateFormat.getInstance(); String zone = (String) request.getattribute("zone"); if (zone!= null) { TimeZone tz = TimeZone.getTimeZone(zone); df.settimezone(tz); } out.println(df.format(date)); ćwiczenie

Przekierowanie do JSP Servlet wykonuje pracę i wynik umieszcza w request Następnie przekierowuje sterowanie do strony JSP getservletcontext().getrequestdispatcher("/page.jsp").forward(request,response); Strona JSP wyświetla wynik

Przykład - servlet public class MyServlet extends HttpServlet { public void doget( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String naglowek = "Nagłówek pliku"; String imie = "Andrzej"; String komunikat = "Proszę się zalogować!"; request.setattribute("header", naglowek); request.setattribute("name", imie); request.setattribute("info",komunkat); } getservletcontext().getrequestdispatcher("/strona.jsp").forward(request,response);

Przykład - jsp <%@ page contenttype="text/html; charset=utf-8" %> <h1>${header}</h1> <p>witaj ${name}!</p> Informacja dla Ciebie: ${info} ćwiczenie

Podsumowanie Serwlet Dostaje wszystkie wywołania Sprawdza parametry Przygotowuje dane Umieszcza w request lub session Strona JSP Odczytuje informacje z request i session Wyświetla je na ekranie Co dalej: Logikę (obliczenia) wydobywamy z serwletu