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



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

1 Wprowadzenie do J2EE


JavaServer Pages. Konrad Kurdej Karol Strzelecki

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

Java wybrane technologie spotkanie nr 3. Serwlety

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

Architektury Usług Internetowych. Laboratorium 1. Servlety

Wybrane działy Informatyki Stosowanej

Java wybrane technologie spotkanie nr 5. Java Server Pages

mgr inż. Michał Paluch

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

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

prepared by: Programowanie WWW Servlety

Kurs WWW 1. Paweł Rajba

Architektury Usług Internetowych. Laboratorium 1 Servlety

Wybrane działy Informatyki Stosowanej

Piotr Laskowski Krzysztof Stefański. Java Servlets

Wzorce prezentacji internetowych

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

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

Serwery aplikacji. dr Radosław Matusik. radmat

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

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

Wprowadzenie do J2EE. Maciej Zakrzewicz.

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

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

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Wybrane działy Informatyki Stosowanej

Serwlety i JSP na platformie Java EE. Damian Makarow

Przegląd technologii JSP

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

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

Java EE: Serwlety i filtry serwletów

Aplikacje Internetowe, Servlety, JSP i JDBC

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

Aplikacje internetowe i rozproszone - laboratorium

Facelets ViewHandler

OpenLaszlo. OpenLaszlo

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

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

TIN Techniki Internetowe Lato 2005

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

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

Java Server Faces - wprowadzenie

Aplikacje WWW - laboratorium

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

Enterprise JavaBeans (EJB)

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

Aplikacje WWW - laboratorium

Architektura Model-View-Controller

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

Aplikacje WWW - laboratorium

Java w Internecie - czy to ma sens? ;)

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

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

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

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

In»ynieria systemów informacyjnych - Adam Krechowicz

Laboratorium 1 Wprowadzenie do PHP

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Java Database Connectivity

Podstawowe wykorzystanie Hibernate

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

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

SOP System Obsługi Parkingów

Aplikacje WWW Wprowadzenie

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

Serwery aplikacji. dr Radosław Matusik. radmat

Enterprise JavaBeans

Programowanie w języku Java

prepared by: Programowanie WWW Model-View-Controller

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

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

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

EJB 3.0 (Enterprise JavaBeans 3.0)

Programowanie wielowarstwowe i komponentowe JSP, JSF

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

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

Wybrane działy Informatyki Stosowanej

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Testowanie aplikacji Java Servlets

Programowanie w Internecie

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Zagadnienia projektowania aplikacji J2EE

Jak stworzyć Geoportal

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Pakiet webmathematica jako narzędzie wspomagające proces dydaktyczny przedmiotu mechanika. Łukasz Maciejewski, Wojciech Myszka, Stanisław Piesiak

Programowanie komponentowe 5

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Programowanie internetowe

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Aplikacje WWW - laboratorium

Web Tools Platform. Adam Kruszewski

Transkrypt:

Marcin Apostoluk Tadeusz Pawlus Wojciech Walczak Technologie Biznesu Elektronicznego, 7 marzec 2006

Plan prezentacji 1 2 3 4 5 6 7

Kto się tym zajmuje? Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Serwlety oraz JSP zostały stworzone w Sun Microsystems. Od wersji JSP 1.2 oraz Serwlety 2.3 rozwijane sa w ramach JCP - Java Community Process Java Specification Request (JSR) 53 - opis JSP 1.2 oraz Serwletów 2.3 JSR 152 opisuje JSP 2.0 JSP 154 opisuje Serwlety 2.4 oraz 2.5 JSR 245 opisuje JSP 2.1

Co to jest serwlet? Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Program pisany w języku Java Wykonywany na serwerach WWW lub serwerach aplikacji Pełni rolę warstwy pośredniczacej pomiędzy klientem oraz aplikacjami działajacymi na serwerze

Kiedy warto używać serwletów Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Strona WWW generowana jest na podstawie informacji przesyłanych przez użytkownika Strona WWW jest tworzona na podstawie informacji, które często ulegaja zmianie Strona WWW wykorzystuje zasoby pochodzace z korporacyjnej bazy wiedzy lub innych zasobów zgromadzonych na serwerze

Cykl życia serwletu Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Wywołanie metody init Każde wywołanie serwletu - nowy watek Metoda service SingleThreadModel doget, dopost, doxxx - zależy od otrzymanego żadania HTTP destroy

Przykładowy serwlet Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet{ public void doget( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); String doctype = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n"; out.println(doctype + "<HTML>\n" + "<HEAD><TITLE>Witamy</TITLE></HEAD>\n" + "BODY BGCOLOR=\"FDF5E6\">\n" + "<H1>Witamy</H1>\n" + "</BODY></HTML>"); } }

Serwlety inne niż HTTP Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Serwlety można umieszczać na Serwerach FTP Serwerach poczty Serwerach aplikacji Serwerach HTTP Wszystkie inne Mała popularność tych rozwiazań Serwery SIP - Session Initialization Protocol http://jcp.org/en/jsr/detail?id=116

init, GET, POST,... Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe init - tylko podczas inicjalizacji serwletu, gdy przetwarzany jest plik web.xml GET POST inne metody wg. W3C OPTIONS HEAD PUT DELETE TRACE CONNECT

Co to jest JSP? Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe JSP = HTML + Java W jednym dokumencie kod HTML i zawartość generowana dynamicznie Kod Javy zwykle umieszczany pomiędzy znacznikami <% oraz %>

Przykład Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe <%@ page contenttype= text/html ; charset=iso-8859-2 %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Potwierdzenie zamówienia</title> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H2>Potwierdzenie zamówienia</h2> Dziękujemy za zamówienie <I><%= request.getparameter("title") %> </I>! </BODY></HTML> http://localhost/stronajsp.jsp?title=nazwa+ksiazki

Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Różnice pomiędzy Serwletami i JSP Ogólnie można powiedzieć Serwlet = Java + HTML JSP = HTML + Java

Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe strony JSP sa przekształcane do postaci serwletów

Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Zalety rozdzielenia JSP i serwletów Oddzielenie warstwy logiki aplikacji od warstwy prezentacji JSP - prezentacja Serwlety - logika Strony JSP ułatwiaja tworzenie oraz utrzymanie kodu HTML Tworzac strony JSP można wykorzystać standardowe narzędzia do tworzenia stron WWW Osoby nie znajace Javy nie będa w stanie modyfikować kodu HTML Można podzielić zespół programistów

Co to jest aplikacja webowa Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Aplikacja uruchamiana na serwerze Komunikacja przez sieć (intranet lub Internet) za pomoca przegladarki internetowej (cienki klient)

Cechy aplikacji webowych Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Łatwość zmian Aplikacja w jednym miejscu Łatwość aktualizaji Ograniczone interfejsem przegladarki Brak Drag&Drop Brak możliwości "rysowania po ekranie" Rozwiazaniem jest dodanie skryptów wykonywanych po stronie klienta

RIA - Rich Internet Application Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe Połaczenie aplikacji webowej i standardowej aplikacji desktopowej Używa standardowej przegladarki internetowej, nie wymaga instalowania Działa lokalnie w zabezpieczonym środowisku(sandbox) Część obliczeń dokonywana jest przez klienta (gruby klient), reszta przez serwer aplikacji Termin wprowadzony przez Macromedia w marcu 2002 roku

Przykłady aplikacji webowych Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje webowe GMail http://gmail.com/ Google Maps http://maps.google.com/ Wikipedia z mechanizmem edycji treści http://pl.wikipedia.org/ Biblioteka Główna Politechniki Wrocławskiej http://www.bg.pwr.wroc.pl/

Inne technologie Inne technologie Zalety JSP Active Server Pages (ASP) Microsoft PHP - Hypertext Preprocessor (PHP) ColdFusion Macromiedia JavaScript Netscape Server-Side Includes (SSI)

Zalety JSP Inne technologie Zalety JSP Szeroko obsługiwane nie ogranicza się do określonego OS czy serwera HTTP Pełny dostęp do języka Java i technologii serwletów specyfikacja, nie produkt wiele implementacji integralna część J2EE szerokie zastosowanie

Składnia JSP(1) Składania JSP Elementy skryptu Dyrektywy Akcje Kod JSP wewnatrz "<%" i "%>" Komentarz wewnatrz "<%- -" i "- -%>" Przykład: adres: http://nazwa_serwera/nazwastrony.jsp?osoba=jan+nowak <HTML> <BODY> Witaj <%= request.getparameter("osoba") %>! </BODY> </HTML>

Składnia JSP(2) Składania JSP Elementy skryptu Dyrektywy Akcje Skrypt JSP znaczniki HTML elementy skryptu - tworza kod Javy serwletu dyrektywy - kontrola nad struktura serwletu akcje - określaja komponenty (kontrola działania JSP)

Elementy skryptu(1) Składania JSP Elementy skryptu Dyrektywy Akcje wyrażenie przekazywane na wyjście <%= wyrażenie %> <jsp:expression> wyrażenie </jsp:expression> Przykład: Bierzacy czas: <%= new java.util.date() %>

Elementy skryptu(2) Składania JSP Elementy skryptu Dyrektywy Akcje skryptlet kod umieszczony wewnatrz metody service <% kod %> <jsp:scriptlet> kod </jsp:scriptlet> Przykład: <% String querydata = request.getquerystring(); out.println("dołączone dane typu GET: + querydata); %>

Elementy skryptu(3) Składania JSP Elementy skryptu Dyrektywy Akcje deklaracja kod umieszczony w ciele klasy serwletu <%! kod %> <jsp:declaration> kod </jsp:declaration> Przykład: <%! private int Licznik = 0; %> Stronę wywołano od czasu uruchomienia serwera: <%= ++Licznik %>

Dyrektywy(1) Składania JSP Elementy skryptu Dyrektywy Akcje <\%@ dyrektywa atrybut_1="wartosc_1" atrybut_2="wartosc_2"... atrybut_n="wartosc_n" %> dyrektywy: page include taglib

Dyrektywy(2) Składania JSP Elementy skryptu Dyrektywy Akcje Dyrektywa page definiowanie atrybutów Przykłady: <%@ page import="java.util.*" %> <%@ page extends="pakiet.klasa" %> <%@ page language="java" %>

Dyrektywy(3) Składania JSP Elementy skryptu Dyrektywy Akcje Dyrektywa include dołaczanie plików w czasie przetwarzania strony JSP na serwlet Zawartość załaczanego pliku jest traktowana jako tekst JSP <%@ include file="względny URL" %>

Dyrektywy(4) Składania JSP Elementy skryptu Dyrektywy Akcje Dyrektywa taglib biblioteka znaczników Przykład: <%@ taglib url="/mojeznaczniki" prefix="moje" %>... <moje:mojedane>... </moje:mojedane>

Akcje(1) Składania JSP Elementy skryptu Dyrektywy Akcje jsp:include plik dołaczany w momencie wywołania <jsp:include page="wirtualny URL" flush="true"/> jsp:usebean znajduje lub buduje Java Bean <jsp:usebean atr=wart*/> lub <jsp:usebean atr=wart*>... </jsp:usebean> jsp:setproperty określa właściwości Java Bean <jsp:setproperty atr=wart*/>

Akcje(2) Składania JSP Elementy skryptu Dyrektywy Akcje jsp:getproperty pobiera właściwość Java Bean <jsp:getproperty name="nazwawlasciwosci" value="wartosc"/> jsp:forward przekierowuje do innej strony <jsp:forward page="wirtualny URL"/> jsp:plugin tworzy znacznik OBJECT lub EMBED <jsp:plugin attribute="wartosc"*>... </jsp:plugin>

Akcje(3) Składania JSP Elementy skryptu Dyrektywy Akcje Zmienne predefiniowane: request - HttpServletRequest, dostęp do parametrów wywołania, typu wywołania, nagłówków HTTP response - HttpServletResponse, zwiazana z odpowiedzia do klienta out - PrintWriter, wysyłanie danych do klienta session - HttpSession, zwiazana z wywołaniem application - ServletContext otrzymany z getservletconfig().getcontext() config - ServletConfig dla tej strony pagecontext - PageContext page synonim this

JavaBeans(1) Standardowy format budowy klas Konstruktor domyślny Wszystkie atrybuty niepubliczne Dostęp do atrybutów poprzez metody get/is oraz set Przykładowo int quantity: getquantity(), setquantity() boolean empty: isempty(), setempty()

JavaBeans(2) w stronach JSP: możliwość manipulowania wyłacznie składni XMLowej łatwo odczytywalna budowa klasy (na podstawie jej metod) wiele zastosowań często zawieraja logikę biznesowa

JavaBeans(3) Pobieranie wartości <jsp:getproperty name="book1" property="title" /> <\%= book1.gettitle() \%> Ustalanie wartości <jsp:setproperty name="book1" property="title" value="new title" /> <\%= book1.settitle("new title"); \%>

Model 1 Model 1 Model 2

Model 1 Model 1 Model 2 Używany w prostych aplikacjach JSP - odbieranie żadań, prezentacja danych Dostęp do danych - JavaBeans W przypadku dużych aplikacji nadmierna ilość kodu odpowiedzialnego za odbieranie żadań

Model 2 Model 1 Model 2

Model 2 Model 1 Model 2 Serwlet - funkcja kontrolera JSP - prezentacja danych, brak kodu logiki aplikacji Dostęp do danych - JavaBeans Serwlet buduje JavaBeans i przekazuje do stron JSP

Jetty(1) Jetty Tomcat Serwer HTTP i kontener Serwletów http://jetty.mortbay.org/jetty/ Jetty 6.0 BETA - najnowsza wersja Jetty 4.2.25 - używana, zgodność pluginów

Jetty(2) Jetty Tomcat Tworzony pod nadzorem Mort Bay www.mortbay.com Zgodność ze specyfikacja Open Source - licencja Apache 2.0 Mały i efektywny: jeden z najszybszych kontenerów serwletów duża skalowalność - tysiace połaczeń optymalizowany od 1995 roku

Jetty(3) Jetty Tomcat Pewny - użyty w wielu projektach Długa lista aplikacji wykorzystujacych Jetty http://www.mortbay.com/mortbay/powered.html m. in. AliceBot, BugKill, JIRA, zintegrowany z Jeronimo, JBoss Embeddable(osadzalny) - zapewnia interfejs HTTP

Jetty(4) Jetty Tomcat Pluginy do środowiska Eclipse http://eclipse-plugins.2y.net http://www.eclipseplugincentral.com/ http://www.eclipse.org/community/plugins.php Jetty Laucher uruchamianie aplikacji web owych z Eclipse a debug owanie aplikacji web owych

Tomcat(1) Jetty Tomcat Jeden z najpopularniejszych kontenerów serwletów Oficjalna, referencyjna implementacja serwletów/jsp http://tomcat.apache.org/ Tomcat 5.5.15 - najnowsza stabilna wersja

Tomcat(2) Jetty Tomcat Rozwijany w Apache Software Foundation do wersji 5.0 rozwijany w ramach projektu Jakarta Darmowy, open-source licencja Apache Zgodność ze specyfikacja 5.5.x: Servlet 2.4, JSP 2.0

Tomcat(3) Jetty Tomcat Wieloplatformowy napisany w Java Zawiera serwer HTTP (stand-alone web serwer) Często stosowany z osobnym serwerem HTTP Wersja osadzalna

Tomcat(4) Jetty Tomcat Najbardziej zgodny ze specyfikacja Najszybciej wprowadza specyfikację Pewny, niezawodny Gorzej udokumentowany od rozwiazań komercyjnych Trudniejsza konfiguracja, administracja Nieco wolniejszy

Tomcat(5) Jetty Tomcat Sysdeo Eclispe Tomcat Launcher plugin// (http://www.sysdeo.com/eclipse/tomcatplugin/) Wersje: eclipse od 2.1.1 tomcat od 3.3 Tomcat For Eclipse (http://openknows.free.fr/) Merve Tomcat Laucher (http://merve.sourceforge.net/)

I Marty Hall More Servlets and JavaServer Pages. Sun Microsystems Press/Prentice Hall PTR Book Hans Bergsten Java server pages. O Reilly Marty Hall Core Servlets and Java Server Pages. A Sun Microsystems Press/Prentice Hall PTR Book

II Lou Marco EJB & JSP: Java On The Edge, Unlimited Edition. M.&.T Publishing Ltd Bruce Eckell Thinking in Java 2ed. Prentice-Hall Marty Hall, Larry Brown Java Servlets i Java Server Pages, wydanie II Helion, 2006

III http://www.w3.org/protocols/rfc2616/rfc2616.html RFC 2616 - Hypertext Transfer Protocol HTTP/1.1 World Wide Web Consortium http://www.stelmach.info/ Krzysztof Stelmach - Kurs JavaServer Pages