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

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

prepared by: Programowanie WWW Servlety

Przegląd technologii JSP

Architektury Usług Internetowych. Laboratorium 1. Servlety

Programowanie w języku Java

Architektury Usług Internetowych. Laboratorium 1 Servlety

prepared by: Programowanie WWW Model-View-Controller

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

Java wybrane technologie

1 Wprowadzenie do J2EE

Piotr Laskowski Krzysztof Stefański. Java Servlets

Wzorce prezentacji internetowych

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

In»ynieria systemów informacyjnych - Adam Krechowicz


Java wybrane technologie spotkanie nr 3. Serwlety

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

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

Java wybrane technologie spotkanie nr 5. Java Server Pages

JavaServer Pages. Konrad Kurdej Karol Strzelecki

Java Server Faces - wprowadzenie

Aplikacje WWW - laboratorium

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

Java Database Connectivity

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

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

Aplikacje internetowe i rozproszone - laboratorium

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

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

Aplikacje Internetowe, Servlety, JSP i JDBC

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

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

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

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Java EE: Serwlety i filtry serwletów

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

mgr inż. Michał Paluch

Zaawansowane aplikacje internetowe laboratorium

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

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

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

Aplikacje WWW - laboratorium

Architektura Model-View-Controller

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

JAVA : APLIKACJE WEBOWE I JAVA EE WPROWADZENIE

Serwlety i JSP na platformie Java EE. Damian Makarow

Tworzenie usług internetowych. Servlety cz. 1

Serwery aplikacji. dr Radosław Matusik. radmat

Wprowadzenie do J2EE. Maciej Zakrzewicz.

prepared by: Java Server Pages Sesje, cookies, znaczniki

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

Kurs WWW 1. Paweł Rajba

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Wybrane działy Informatyki Stosowanej

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

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

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

Podstawowe wykorzystanie Hibernate

Komunikacja między serwletami

Programowanie obiektowe

TIN Techniki Internetowe Lato 2005

SOAP. Autor: Piotr Sobczak

Enterprise JavaBeans

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

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Programowanie wielowarstwowe i komponentowe

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Aplikacje Internetowe

Aplikacje WWW - laboratorium

Tworzenie i wykorzystanie usług

Zaawansowane aplikacje WWW - laboratorium

Java w Internecie - czy to ma sens? ;)

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

Aplikacje WWW - laboratorium

Enterprise JavaBeans (EJB)

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

JĘZYKI PROGRAMOWANIA Elementy programowania rozproszonego

<bean name="datecontroller" class="controllers.datecontroller" /> package controllers;

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

Programowanie wielowarstwowe i komponentowe JSP, JSF

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

Java rozszerzenie. dr. A. Dawid

J2EE wzorce projektowe. Alicja Truszkowska

Tworzenie aplikacji internetowych w języku Java

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

Testowanie podstawowej konfiguracji serwera w środowisku NetBeans

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

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

Wzorce logiki dziedziny

Remote Method Invocation 17 listopada 2010

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

Programowanie komponentowe 5

Aplikacje RMI Lab4

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

Transkrypt:

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

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://java.sun.com/javaee/5/docs/tutorial/doc/ 2

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

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(); 4

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> 5

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/firsturl. 6

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. 7

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

Pierwszy serwlet obsługa żądań public void doget(...)throws... { performtask(request, response); public void dopost(...) throws... { performtask(request, response); 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(); 9

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. 10

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> 11

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: 12

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"/> 13

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> 14

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> 15

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> 16

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; 17

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; 18

Bean MyDate package mypkg; 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); 19

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 20

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. 21