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



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

prepared by: Programowanie WWW Servlety

Java Server Faces - wprowadzenie

Architektury Usług Internetowych. Laboratorium 1. Servlety

prepared by: Programowanie WWW Model-View-Controller

1 Wprowadzenie do J2EE

Przegląd technologii JSP

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

Java wybrane technologie spotkanie nr 3. Serwlety

Wzorce prezentacji internetowych

Architektury Usług Internetowych. Laboratorium 1 Servlety

JavaServer Pages. Konrad Kurdej Karol Strzelecki

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


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

Piotr Laskowski Krzysztof Stefański. Java Servlets

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

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

Aplikacje Internetowe, Servlety, JSP i JDBC

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

Java Database Connectivity

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

Programowanie w języku Java

In»ynieria systemów informacyjnych - Adam Krechowicz

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

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 internetowe i rozproszone - laboratorium

Java wybrane technologie spotkanie nr 5. Java Server Pages

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

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

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

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej

Java wybrane technologie

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

J2EE wzorce projektowe. Alicja Truszkowska

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

Java EE: Serwlety i filtry serwletów

Architektura Model-View-Controller

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Aplikacje WWW - laboratorium

mgr inż. Michał Paluch

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

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

Aplikacje WWW - laboratorium

Wybrane działy Informatyki Stosowanej

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

Programowanie wielowarstwowe i komponentowe JSP, JSF

Tworzenie usług internetowych. Servlety cz. 1

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

Kurs WWW 1. Paweł Rajba

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

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

Zaawansowane aplikacje internetowe laboratorium

Enterprise JavaBeans

Programowanie obiektowe

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Aplikacje WWW - laboratorium

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

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

Aplikacje WWW - laboratorium

Aplikacje Internetowe

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

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Tworzenie aplikacji internetowych w języku Java

Serwlety i JSP na platformie Java EE. Damian Makarow

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

TIN Techniki Internetowe Lato 2005

Aplikacje WWW - laboratorium

SOAP. Autor: Piotr Sobczak

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

Programowanie wielowarstwowe i komponentowe

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

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Zaawansowane aplikacje WWW - laboratorium

Serwery aplikacji. dr Radosław Matusik. radmat

Java w Internecie - czy to ma sens? ;)

JavaServer Faces (JSF)

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

Enterprise JavaBeans (EJB)

Wzorce logiki dziedziny

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

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

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

Komunikacja między serwletami

Tworzenie i wykorzystanie usług

Podstawowe wykorzystanie Hibernate

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Programowanie komponentowe 5

Java rozszerzenie. dr. A. Dawid

Java. Michał Wójcik.

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

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

Testowanie aplikacji Java Servlets

JAVA : APLIKACJE WEBOWE I JAVA EE WPROWADZENIE

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

prepared by: Java Server Pages Sesje, cookies, znaczniki

Aplikacje WWW - laboratorium

Transkrypt:

e-biznes Wykład dla studentów Informatyki Stosowanej UJ 2012/2013 Michał Cieśla pok. 440a, email: michal.ciesla@uj.edu.pl konsultacje: środy 10-12 http://users.uj.edu.pl/~ciesla/ 1

Literatura B. Burke, R. Monson-Haefel Enterprise JavaBeans, 3.0, Helion 2006 W. Crawford, J. Kaplan J2EE. Stosowanie wzorców projektowych, Helion 2004 (J2EE Design Patterns). D. Aldur, J. Crupi, D. Malks J2EE wzorce projektowe, Helion 2004 (Core J2EE Patterns: Best Practices and Design Strategies, 2nd Edition). hhttp://www.oracle.com/technetwork/java/index.html http://www.google.pl 2

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

Java Enterprice Edition Java Enterprice Edition (JEE) jest rozszerzeniem Java Standard Edition (JSE) o usługi wykorzystywane w tzw. aplikacjach biznesowych. Jednym z najczęściej wykorzystywanych elementów JEE są usługi związane z aplikacjami www. http://docs.oracle.com/javaee/6/tutorial/doc/ 4

Prerekwizyty Java SDK Apache Tomcat http://tomcat.apache.org/, ewentualnie plugin do Eclipse http://www.eclipsetotale.com/tomcatplugin.html#a3. 5

Pierwszy serwlet import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class FirstServlet extends HttpServlet{ public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException{ PrintWriter out = response.getwriter(); out.print("hello world"); out.close(); 6

Pierwszy serwlet web.xml <?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>first</servlet-name> <servlet-class>firstservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/firsturl</url-pattern> </servlet-mapping> </web-app> 7

Struktura przykładu WEB-INF classes FirstServlet.class lib web.xml Tak przygotowaną strukturę katalogów i plików umieszczamy w archiwum HelloTomcat.war i wgrywamy na serwer Tomcat. Uruchomienie przykładu: http://localhost:8080/hellotomcat/frsturl. 8

Pierwszy serwlet obsługa żądań Żądania, przekazywane do serwletu, w zależności od formy są obsługiwane przez jedną z dwóch metod: public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException oraz public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException Z tego powodu serwlet chcący reagować na oba rodzaje wywołań powinien obsługiwać obie metody. 9

Pierwszy serwlet obsługa żądań Dostęp do danych przekazanych w żądaniu (argumenty GET, POST, ustawienia Cookies, identyfkatory sesji) uzyskujemy za pośrednictwem obiektu HttpServletRequest. Obiekt HttpServletResponse response jest przez serwlet używany do skonstruowania odpowiedzi. 10

Pierwszy serwlet obsługa żądań public void performtask(httpservletrequest request, HttpServletResponse response) { HttpSession session = request.getsession(); Object obj = session.getattribute("lp"); if (obj==null) obj = "0"; session.setattribute("lp", String.valueOf(Integer.parseInt(obj.toString()) + 1)); response.setcontenttype("text/html"); PrintWriter out; try { out = response.getwriter(); out.println("hello world: " + obj.tostring()); catch (IOException e) { e.printstacktrace(); 11

Pierwszy serwlet obsługa żądań public void doget(...)throws... { performtask(request, response); public void dopost(...) throws... { performtask(request, response); 12

JavaServer Pages Aby ułatwić programistom tworzenie stron internetowych wprowadzono technologię JSP, która przypomina inne, powszechnie stosowane języki skryptowe służące do generowania dokumentów HTML (ASP, PHP,...). Dokument JSP jest zapisany w formacie XML. 13

Pierwszy skrypt JSP <%@ page language = "java" %> <%@ page import = "java.util.*" %> <%@ page contenttype = "text/html" %> <html> <title>jsp Demo</title> <body bgcolor="white" text="red"> <H1> <% if (Calendar.getInstance().get(Calendar.AM_PM)==Calendar.AM){ %> Milego poranka! <% else{ %> Milego popoludnia! <% %> </H1> <H3> Aktualny czas: <% out.println(new java.util.date()); %> </H3> </body> </html> 14

Uruchomienie strony JSP Skrypt umieszczamy np. w głównym katalogu aplikacji: WEB-INF classes lib web.xml hello.jsp Dostęp do niego odbywa się poprzez adres: http://localhost:8080/hellotomcat/hello.jsp W rzeczywistości na podstawie skryptu jsp tworzona jest automatycznie obiekt Javy (przypominający servlet), który generuje opisaną w skrypcie dokument. Aby nie przeplatać kodu Javy z elementami HTML'a używa się specjalnych tagów: 15

Przykład JSP <%@ page contenttype="text/html; charset=utf-8" %> <!-- import biblioteki StandardTagLibrary --> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!-- import własnej biblioteki tagów --> <%@ taglib uri="/web-inf/functions.tld" prefix="f" %> <html> <head> <title>daty</title> </head> <body bgcolor="white"> <!-- użycie własnego obiektu w ramach strony --> <jsp:usebean id="locales" scope="application" class="mypkg.mylocales"/> 16

Przykład JSP <form name="localeform" action="date.jsp" method="post"> <c:set var="selectedlocalestring" value="${param.locale" /> <c:set var="selectedflag" value="${!empty selectedlocalestring" /> <b>lokalizacja:</b> <select name=locale> <c:foreach var="localestring" items="${locales.localenames" > <c:choose> <c:when test="${selectedflag"> <c:choose> <c:when test="${f:equals(selectedlocalestring,localestring)"> <option selected>${localestring</option> </c:when> <c:otherwise> <option>${localestring</option> </c:otherwise> </c:choose> </c:when> <c:otherwise> <option>${localestring</option> </c:otherwise> </c:choose> </c:foreach> </select> 17

Przykład JSP <input type="submit" name="submit" value="pokaz date"> </form> <c:if test="${selectedflag" > <jsp:setproperty name="locales" property="selectedlocalestring" value="${selectedlocalestring" /> <jsp:usebean id="date" class="mypkg.mydate"/> <jsp:setproperty name="date" property="locale" value="${locales.selectedlocale"/> <b>data: </b>${date.date </c:if> </body> </html> 18

Własne funkcje <?xml version="1.0" encoding="utf-8"?> <taglib 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 web-jsptaglibrary_2_0.xsd" version="2.0"> <description>definicja funkcji</description> <tlib-version>1.0</tlib-version> <short-name>functiontaglibrary</short-name> <uri>/functionlibrary</uri> <function> <name>equals</name> <function-class>mypkg.mylocales</function-class> <function-signature> boolean equals( java.lang.string, java.lang.string ) </function-signature> </function> </taglib> 19

Bean MyLocales package mypkg; import java.util.*; import java.text.dateformat; public class MyLocales { ArrayList<String> localenames; HashMap<String, Locale> locales; Locale selectedlocale; String selectedlocalestring; public MyLocales() { locales = new HashMap<String, Locale>(); localenames = new ArrayList<String>(); Locale[] list = DateFormat.getAvailableLocales(); for (int i = 0; i < list.length; i++) { locales.put(list[i].getdisplayname(), list[i]); localenames.add(list[i].getdisplayname()); Collections.sort(localeNames); selectedlocale = null; selectedlocalestring = null; 20

Bean MyLocales public static boolean equals( String l1, String l2) { return l1.equals(l2); public Collection getlocalenames() { return localenames; public void setselectedlocalestring(string displayname) { this.selectedlocalestring = displayname; this.selectedlocale = (Locale) locales.get(displayname); public Locale getselectedlocale() { return selectedlocale; public String getselectedlocalestring() { return selectedlocalestring; 21

package mypkg; Bean MyDate import java.text.dateformat; import java.util.*; public class MyDate { Date today; DateFormat dateformatter; public MyDate() { today = new Date(); public String getdate() { return dateformatter.format(today); public void setlocale(locale l) { dateformatter = DateFormat.getDateInstance(DateFormat.FULL, l); 22

Struktura przykładu Skrypt umieszczamy np. w głównym katalogu aplikacji: WEB-INF classes mypkg MyDate.class MyLocale.class lib jstl.jar standard.jar web.xml functions.tld date.jsp Adres: http://localhost:8080/hellotomcat/date.jsp 23

Podsumowanie Podstawową zaletą technologii servletów jest możliwość tworzenia serwisów internetowych z wykorzystaniem całej infrastruktury dostarczanej przez język programowania Java wraz z wszelkimi jego rozszerzeniami. Głównym obszarem zastosowaniem tego rodzaju rozwiązań są aplikacje webowe wymagające dużej skalowalności ze względu na używane zasoby. Kontener serwletów jest wtedy składnikiem odpowiedzialnym za interakcje z użytkownikiem poprzez interfejs www. 24