http protokol 2. http, Úvod do java2ee java servlets · 2. http, Úvod do java2ee http protokol...

41
2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Tvorba informaˇ cních systém ˚ u Michal Krátký, Miroslav Beneš 1 Katedra informatiky VŠB–Technická univerzita Ostrava Tvorba informaˇ cních systém ˚ u, 2006/2007 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informaˇ cních systém ˚ u 1/41

Upload: others

Post on 22-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Tvorba informacních systému

Michal Krátký, Miroslav Beneš

1Katedra informatikyVŠB–Technická univerzita Ostrava

Tvorba informacních systému, 2006/2007

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 1/41

Page 2: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Hypertext Transfer Protokol (HTTP)

Protokol pro prenos dat mezi webovým serverem aprohlížecem. Klient - server.Protokol aplikacní vrstvy, TCP, port 80.Požadavek (request) - odpoved’ (response).Aktuální verze 1.1.Metody: GET, PUT, POST, ...

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 2/41

Page 3: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

HTTP požadavek

metoda URL_dokumentu verze_HTTPhlavickyprazdna_radka

telo_pozadavku

Príklad. Ukázka jednoduchého požadavku

GET /clanky/obsah.html HTTP/1.1User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)Host: www.server.cz

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 3/41

Page 4: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

HTTP odpoved’

protokol stavovy_kod stavové_hlasenihlavickyprazdna_radkaobsah_odpovedi

Príklad: Ukázka odpovedi

HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Date: Wed, 06 Dec 2000 13:37:40 GMTX-Powered-By: PHP/4.0.3pl1Content-type: text/html

<!DOCTYPE HTML PUBLIC ’-//W3C//DTD HTML 4.0 Transitional//EN’><html>...

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 4/41

Page 5: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Omezení HTTP

Server nemá stále spojení s klienty a nemuže je protojednoznacne identifikovat - komplikace pro webovéaplikace.

Rešení:

Prenášení údaju v URL a skrytých polí formuláre -nebezpecné, komplikované,cookies,session promenné.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 5/41

Page 6: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Session, cookie

CookieKrátká informace, kterou si server uloží v prohlížeci.Pri následujících prístupech k témuž serveru je cookiezaslána zpet.Cookie je vázána na server a prípadne i na adresár.Nebezpecné – všechny stavové informace jsou v každémpožadavku/odpovedi.

SessionKaždému novému uživateli se priradí unikátní identifikátor(tzv. session-id).Predává se s každým požadavkem pomocí cookie neboparametru v URL, resp. skrytých polí ve formulári.Pomerne bezpecné – s každým požadavkem se prenášíjen malá cást dat a session-id.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 6/41

Page 7: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Odkazy

Libor Dostálek: Velký pruvodce protokoly TCP/IP asystémem DNS. Computer Press, 2002.Jirí Kosek: Protokol HTTP.http://badame.vse.cz/izi228/prednasky/http/frames.html, 2000.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 7/41

Page 8: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Architektura J2EE

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 8/41

Page 9: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Java Servlets

Metoda rozširování webového serveru o dynamickégenerování obsahu.Rozhraní pro aplikace s tenkým klientem (webovýprohlížec).

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 9/41

Page 10: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Výhody servletu

Perzistence mezi voláními – rychlejší odezva napožadavky, sdílení dat.Pro servlet je vytvoreno vlákno z bežícího JVM.

CGI – opakované zavádeníPrístup k celému Java API

JDBC – databázeJAXP – práce s XMLJNDI – adresárové služby

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 10/41

Page 11: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Servletový kontejner

Zajišt’uje beh servletuJVM,Správa sezení (session),Udržovaní kontextu,Konfiguracní informace,Perzistence.

Ruzní dodavatele – standardizaceJava Servlet API 2.5 (aktuální verze).

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 11/41

Page 12: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Typy servletových kontejneru

Rozšírení WWW serveruApache/JServ

S vestaveným WWW serveremJetty (Mortbay.com)WebSphere (IBM)

Samostatné aplikacní serveryApache TomcatSun ONE ServerJBoss

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 12/41

Page 13: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Java Servlet API

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 13/41

Page 14: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Reprezentace požadavku

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 14/41

Page 15: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Reprezentace odpovedi

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 15/41

Page 16: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - HelloWorld 1/2

import java . i o . ∗ ;import javax . s e r v l e t . ∗ ;import javax . s e r v l e t . h t t p . ∗ ;

public class Hel loWorld extends Ht tpSe rv l e t{

public void doGet ( Ht tpServ le tRequest request ,HttpServletResponse response )

throws IOException , Serv le tExcept ion{

response . setContentType ( " t e x t / html " ) ;P r i n t W r i t e r out = response . ge tWr i t e r ( ) ;

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 16/41

Page 17: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - HelloWorld 2/2

out . p r i n t l n ( "<html > " ) ;out . p r i n t l n ( "<head>" ) ;out . p r i n t l n ( "< t i t l e >He l lo World ! < / t i t l e > " ) ;out . p r i n t l n ( " </head>" ) ;out . p r i n t l n ( "<body>" ) ;out . p r i n t l n ( "<h1>Hel lo World ! < / h1>" ) ;out . p r i n t l n ( " </body>" ) ;out . p r i n t l n ( " </ html > " ) ;

}}

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 17/41

Page 18: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - HelloWorld

<html><head>< t i t l e >Hel lo World ! < / t i t l e >< / head><body><h1>Hel lo World ! < / h1>< / body>< / html>

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 18/41

Page 19: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

JavaServer Pages

1 Rozdílná filosofie oproti servletu – možnost editace HTMLeditory.

2 Kompilace na servletPri prvním požadavku, kontrolují se zmeny.

3 Zjednodušení realizace stránek, možnosti:Servlety generující všechny stránky,Statický obsah HTML + servlety pro akce,Dynamicky obsah v rámci statického.

4 Oddelení prezentace od aplikacní logiky pomocíuživatelských znacek.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 19/41

Page 20: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - JSP

<%@ page contentType=" t e x t / html ;charset=windows−1250" %>

<%@ page import=" java . u t i l .∗ " %><html ><head>

< t i t l e >Prvn i pokus </ t i t l e ></head><body><h1> V i t e j t e ! < / h1><p>Dnesni datum j e <%= new Date ( ) . t o S t r i n g () % > </p></body>

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 20/41

Page 21: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - JSP

<html><head>

< t i t l e >Prvn i pokus< / t i t l e >< / head><body><h1> V i t e j t e < / h1><p>Dnesni datum j e Sun Feb 2 6 1 3 : 5 8 : 3 1 GMT+01:00 2006< / p>< / body>

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 21/41

Page 22: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Prvky JSP

Direktivy<%@ page contentType=’text/html’ %>,

Vložený úsek programu<% out.println("x : " + x); %>,

Výrazx : <%= x %>,

Vestavené znaky akcí<jsp:include page="/headers/header.jsp"/>,

Uživatelem definované znacky<my:Date />,

<% @ taglib uri=http://lib.com/tags prefix="my" %>,

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 22/41

Page 23: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

JSP - Expression language example 1/2

<html ><head>

< t i t l e >JSP 2 . 0 Expression Language −Basic Ar i t hmet i c </ t i t l e >

</head><body>

<h1>JSP 2 . 0 Expression Language −Basic Ar i thmet i c </h1>

<hr > . . .<br ><blockquote >

<code>< tab le border= " 1 ">

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 23/41

Page 24: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

JSP - Expression language example 2/2

<thead ><td ><b>EL Expression </b> </ td ><td ><b>Result < /b> </ td >

</ thead >

< t r ><td >\$ {1 } < / td ><td >$ {1 } < / td >

</ t r >< t r >

<td >\$ { 1 + 2 } < / td ><td >$ { 1 + 2 } < / td >

</ t r >. . .

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 24/41

Page 25: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Preddefinované promenné

HttpServletRequest request<%= request.getRemoteHost() %>

HttpServletResponse response

HttpSession session

PrintWriter outServlerContext applicationServletConfig config

PageContext pageContextpage (= this)

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 25/41

Page 26: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Výrazy a úseky programu

<!DOCTYPE HTML PUBLIC " − / /W3C/ / DTD HTML 4.0 T r a n s i t i o n a l / / EN"><html >

<head>< t i t l e >Ukazka JSP vyrazu a . . . < / t i t l e > </head><body>

Curent date / t ime : <%= new java . u t i l . Date()%><br >Remote host : <%= request . getRemoteAddr()%><br >Session ID : <%= session . ge t Id ()%><br >Request URI: <%= request . getRequestURI()%><br >

<%S t r i n g method = request . getMethod ( ) ;out . p r i n t l n ( " Method : " + method ) ;%></body></ html >

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 26/41

Page 27: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Výrazy a úseky programu

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 27/41

Page 28: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Uživatelské znacky

Oddelení logiky aplikace od prezentace:Java Beans,uživatelské znacky.

Uživatelské akce jsou volány pomocí uživatelských znacek.JSTL – JavaServer Standard Tag Library.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 28/41

Page 29: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Co potrebujeme?

JSP stránku využívající uživatelské znacky - deklaraceumístení souboru popisující knihovnu znacek (Tag LibraryDescriptor - TLD).Tag Library Descriptor – XML soubor popisující vlastnosti aumístení obslužného programu.Tag Handler - obslužný program, trída v Jave.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 29/41

Page 30: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

JSP stránka

Deklarace knihovny znacek:<%@ taglib uri = "uri" prefix = "prefix" %>

Znacky:

Jednoduchá znacka:<prefix:name></tagPrefix:name>

Znacka s atributy:<prefix:name attribute = "<%= val %>"/>

Znacka s telem.Znacka definující promennou.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 30/41

Page 31: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Tag Handler - implementace

Implementace rozhraníjavax.servlet.jsp.tagext.Tag nebojavax.servlet.jsp.tagext.BodyTag.Dedení za trídjavax.servlet.jsp.tagext.TagSupport nebojavax.servlet.jsp.tagext.BodyTagSupport.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 31/41

Page 32: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - index.html

<html><head>

<META HTTP−EQUIV=" Content−Type "CONTENT=" t e x t / html ; charset=windows−1250">

< t i t l e >Vstup na s t ranky< / t i t l e >< / head>

<body>Vloz te jmeno : <br><form action=" enter . j sp " method=" post ">

< input type=" t e x t " name=" n ">< input type=" submit " name=" submit " value="OK">

< / form>< / body>< / html>

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 32/41

Page 33: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - enter.jsp

<%@ page contentType=" t e x t / html ; charset=windows−1250"%><%@ t a g l i b p r e f i x = "exm" u r i = "WEB−INF / en ter . t l d " %><%@ t a g l i b p r e f i x = " fmt " u r i = "WEB−INF / fmt . t l d " %><html>

<head>< t i t l e >Hel lo Name Tag< / t i t l e >< / head><body>

<fmt : requestEncoding value=" windows−1250" / ><st rong> V i t a j t e ! < / s t rong><p>< i ><exm: ent name=’<%= request . getParameter ( " n " ) %> ’ / >< / i ><p><st rong> P r i j d t e zas . < / s t rong>

< / body>< / html>

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 33/41

Page 34: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - enter.tld 1/2

<?xml vers ion=" 1.0 " encoding=" ISO−8859−1" ?>< !DOCTYPE t a g l i b

PUBLIC " − / /Sun Microsystems , Inc . / / DTD JSP Tag L i b r a r y 1 . 1 / /EN"" h t t p : / / java . sun . com/ j2ee / dtds / web−j s p t a g l i b r a r y _ 1 _ 1 . dtd ">

< t a g l i b >< t l i b v e r s i o n >1.0< / t l i b v e r s i o n >< j spve rs i on >1.1< / j spve rs i on ><shortname> i n t e r v a l < / shortname>< i n f o >Simple welcome l i b r a r y . < / i n f o >

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 34/41

Page 35: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - enter.tld 2/2

<tag><name>ent< /name>< tagc lass>exm. tags . Enter< / tagc lass><bodycontent>JSP< / bodycontent>< a t t r i b u t e >

<name>name< /name><requ i red> t rue < / requ i red>< r t exp rva lue > t rue < / r t exp rva lue >

< / a t t r i b u t e >< / tag>< / t a g l i b >

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 35/41

Page 36: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - exm.tags.Enter 1/3

package exm. tags ;import java . i o . ∗ ;import java . u t i l . Date ;import java . t e x t . DateFormat ;import javax . s e r v l e t . j sp . ∗ ;import javax . s e r v l e t . j sp . tagex t . ∗ ;

public class Enter extends TagSupport {private S t r i n g name = " nobody " ;public void setName ( S t r i n g name){

i f ( ! name . equals ( " " ) ) {th is . name = name ;

}}

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 36/41

Page 37: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - exm.tags.Enter 2/3

public i n t doStartTag ( ) throws JspTagException {return EVAL_BODY_INCLUDE;

}public i n t doEndTag ( ) throws JspTagException {

DateFormat d f = DateFormat . getDateInstance ( ) ;S t r i n g date = df . format (new Date ( ) ) ;t ry {

JspWr i te r out = pageContext . getOut ( ) ;out . p r i n t ( " Hi , " +name+ "<br > " ) ;out . p r i n t ( "My name i s " + getClass ( ) . getName ( ) +" today i s " + date + "<p/ > " ) ;

} catch ( IOExcept ion ex ) {throw new JspTagException ( " Output Er ro r " ) ;

}

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 37/41

Page 38: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Príklad - exm.tags.Enter 3/3

return EVAL_PAGE;}

}

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 38/41

Page 39: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

JSTL – JavaServer Standard Tag Library

CoreXML

analýza <x:parse .../>transformace<x:transform xslt="..." xml="..."/>

I18n (Internationalization)formátovaní textu <fmt:message key="..."/>formátovaní císel a data/casu <fmt:formatDate .../>

Databázevolba zdroje dat<sql:setDataSource dataSource="..."/>SQL dotazy a transakce<sql:query var="...>...</sql:query>

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 39/41

Page 40: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Odkazy

http://java.sun.com/products/jsp/

JavaServer Pages pro všechny -http://interval.cz/serial.asp?serial=46

http://java.sun.com/products/servlet/

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 40/41

Page 41: HTTP Protokol 2. HTTP, Úvod do Java2EE Java Servlets · 2. HTTP, Úvod do Java2EE HTTP Protokol Java Servlets JavaServer Pages Hypertext Transfer Protokol (HTTP) Protokol pro pˇrenos

2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages

Struktura webové aplikace

Servlety - .classStatický obsah - .html, .jpg, .gif, . . .JSP - .jspKnihovny tríd - .jar

Soubor war.

Vývoj:

1 Tomcat - beh webové aplikace,2 NetBeans - ladení webové aplikace.

c©2006-2007 Michal Krátký, Miroslav Beneš Tvorba informacních systému 41/41