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
41
Embed
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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
2. HTTP, Úvod do Java2EEHTTP ProtokolJava ServletsJavaServer Pages
Tvorba informacních systému
Michal Krátký, Miroslav Beneš
1Katedra informatikyVŠB–Technická univerzita Ostrava
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, ...
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.
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 > " ) ;
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.
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>
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>
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 >
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>
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 >
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 ;
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 " ) ;