Technologia JSP - PowerPoint PPT Presentation

About This Presentation
Title:

Technologia JSP

Description:

Technologia JSP Co to jest JSP? JSP, czyli Java Server Pages, to specyfikacja oparta na technologii Serwlet w umo liwiaj cej tworzenie dynamicznych stron HTML ... – PowerPoint PPT presentation

Number of Views:133
Avg rating:3.0/5.0
Slides: 20
Provided by: Yatz4
Category:

less

Transcript and Presenter's Notes

Title: Technologia JSP


1
Technologia JSP

2
Co to jest JSP?
  • JSP, czyli Java Server Pages, to specyfikacja
    oparta na technologii Serwletów umozliwiajacej
    tworzenie dynamicznych stron HTML, wzbogaconych o
    skrypty w Javie i specjalne znaczniki. Strona
    zawierajaca skrypt jest kompilowana do postaci
    Serwleta, który obsluguje zadania do niej
    kierowane. Cala translacja i kompilacja odbywa
    sie w tle i jest wykonywana przez kontener.
    Dzieki temu zachowano korzysci, które niosla
    technologia Java Servlets.

3
Engine JSP Servlets
4
Model Viewer Controller
Wzorzec MVC jest podejsciem hybrydowym sluzacym
do przetwarzania zapytan klienta
5
Serwlety i JSP porównanie
  • obie technologie sa równowazne, czyli kazdy
    serwlet mozna zaprojektowac jako strone JSP i
    odwrotnie, ale biorac pod uwage model MVC
    odgrywaja one rózne role
  • JSP zapewniaja podzial prac pomiedzy programistom
    a designerem stron HTML
  • serwletów mozna uzywac gdy chcemy wykonac
    czynnosci inicjalizacyjne, zapisywac dane w
    formacie binarnym do klienta a takze elementy
    zwiazane z tzw. Logika biznesowa.

6
Dyrektywy
  • Dyrektywy to znaczniki które stosuja sie do
    calego pliku JSP. Naleza do nich
  • Page. stosuje sie do deklaracji pakietów
    uzywanych w pliku, ustalania tekstu
    informacyjnego, definiowania strony bledów.
    Przykladowo, jezeli chcemy uzywac pakietu
    java.util, nalezy umiescic w zródle stronylt_at_
    page import"java.text.SimpleDateFormat,java.util.
    " gtlt_at_ page errorPageerror.jsp" gt lt_at_ page
    isErrorPagetrue" gt (error.jsp)
  • Include, która powoduje zamieszczenie w miejscu
    jej wystepowania tresci okreslonego pliku, z
    uwzglednieniem przetwarzania elementów JSP w nim
    zawartych. Dzieki temu mozna stworzyc kod
    wielokrotnie uzywany na wielu stronach i
    przechowywac go w jednym miejscu. lt_at_ include
    file"info.jsp" gt

7
Dyrektywy cd.
  • TagLib, okreslajaca biblioteke znaczników z
    której zamierzamy korzystac. Zostanie ona szerzej
    omówiona w dalszej czesci prezentacji.

8
Deklaracje
  • Deklaracje, wyrazenia i skryptlety sa kodem w
    jezyku skryptowym stosowanym w stronie JSP.
    Obecnie jedynym dostepnym jezykiem jest Java.W
    pojedynczym znaczniku moze sie ich znalezc wiecej
    niz jedna. Deklarowac mozna zarówno zmienne jak
    i metody.
  •  
  • lt! String text Hello World Date
    currentDate new Date() gt 
  • lt! private void doSomething(String obj)
  • throws IOException . . . cialo metody gt

9
Wyrazenia
  • Wyrazenia podobnie jak deklaracje maja swoje
    odpowiedniki w jezyku Java. Jest to kod który
    przyjmuje konkretna wartosc klasy String.
  • Dzieki temu mamy do dyspozycji bardzo latwy
    mechanizm wklejania w strone prostych,
    dynamicznie generowanych tresci. lt
    request.getServerName() gt
  •  
  • lt new Date() gt ?( (new Date()).toString() )

10
Skryptlety
  • Dopelnieniem deklaracji i wyrazen sa skryptlety
    w których mozna zawierac wieksza ilosc kodu,
    instrukcje sterujace, itp.
  • lt for (Enumeration esession.getAttributeNames(
    )e.hasMoreElements())
  • attrName (String) e.nextElement()
  • gt
  • ltBgtltUgt lt attrName gt lt/Ugt lt/Bgt
  • lt gt
  • lt if (kobieta) gt
  • Szanowna Pani!
  • lt else gt
  • Szanowny Panie!
  • lt gt

11
Predefiniowane obiekty
12
Efektywnosc
  • Dotychczas opisane elementy JSP umozliwiaja
    napisanie w pelni funkcjonalnych, dynamicznych
    stron HTML. Maja one jednak wade polegajaca na
    koniecznosci zawierania nieraz duzej ilosci kodu
    (skryptlety) dotyczacego logiki biznesowej
    wymieszanego z kodem HTML. Utrudnia to
    zarzadzanie i wspólprace czlonków zespolu
    implementujacego serwis, podobnie jak to ma
    miejsce w czystych Serwletach. Rozwiazaniem
    tego problemu jest mozliwosc zamykania logiki w
    komponentach o dobrze zdefiniowanych
    interfejsach, przy uzyciu wzorca projektowego MVC
    (np. framework Struts).

13
JavaBeans
  • JavaBeans byly stosowane jeszcze przed
    powstaniem specyfikacji JSP i zostaly
    zaadoptowane do nich w naturalny sposób. Sa one
    wykorzystywane czesto do przetwarzania danych.
  • Przykladowy kod
  • lt ShoppingCart cart (ShoppingCart)session.
    getAttribute("cart") // If the user
    has no cart, create a new one if (cart null)
  • cart new ShoppingCart()
  • session.setAttribute("cart", cart)
  • gt
  • mozna wyrazic tez przy uzyciu JavaBeans
  • ltjspuseBean id"cart" class"cart.ShoppingCart"
    scope"session"/gt

14
JavaBeans cd.
  • Ustawienie pola propNameltjspsetProperty
    namecart property"propName" value"string"/gt
  • Ustawienie pola propName wartoscia pobrana z
    requestu(parametr paramName)
  • ltjspsetProperty namecart property"propName"
    param"paramName"/gt
  • Parametry requestu wstawiane do pól beana
  • ltjspsetProperty name"beanName" property""/gt

15
Biblioteki znaczników taglibs
  • Nowym elementem wprowadzonym w specyfikacji JSP
    1.1 sa biblioteki znaczników (tag), których
    funkcjonalnosc moze byc dowolnie definiowana
    przez twórców.Podstawowe róznice pomiedzy
    JavaBeans, a tagami to
  • JavaBeany, w przeciwienstwie do znaczników nie
    moga przetwarzac zawartosci strony JSP
  • Stosowanie tagów jest bardziej naturalne dla
    twórców stron WWW
  • Tworzenie tagów wymaga wiecej wysilku

16
Prosty tag handler
  • import javax.servlet.jsp.
  • import javax.servlet.jsp.tagext.
  • import java.io.
  •  
  • public class ExampleTag
  • extends TagSupport
  • public int doStartTag()
  • try
  • JspWriter out
    pageContext.getOut()
  • out.print("Custom tag
    example")
  • catch(IOException ioe)
  • System.out.println("Error in
    ExampleTag " ioe)
  • return(SKIP_BODY)
  • Metoda doStartTag wywolywana jest w trakcie
    napotkania znacznika poczatkowego. Zapis do
    wynikowej strony HTML uzyskuje sie poprzez obiekt
    pageContext klasy PageContext ustawiany w trakcie
    inicjalizacji taga przez kontener.

17
Deskryptor biblioteki (example-taglib.tld)
  • lt?xml version"1.0" encoding"ISO-8859-1" ?gt
  • lt!DOCTYPE taglib PUBLIC "-//Sun Microsystems,
    Inc.//DTD JSP Tag Library 1.1//EN"
    "http//java.sun.com/j2ee/dtds/web-jsptaglibrary_1
    _1.dtd"gt
  • lt!-- a tag library descriptor --gt
  • lttaglibgt
  • lttlibversiongt1.0lt/tlibversiongt
  • ltjspversiongt1.1lt/jspversiongt
  • ltshortnamegtexamplejsplt/shortnamegt
  • lturngtlt/urngt
  • ltinfogt A example tag library lt/infogt
  • lttaggt
  • ltnamegtexamplelt/namegt
  • lttagclassgtexamples.tags.ExampleTaglt/tagcla
    ssgt
  • ltinfogtSimplest example inserts one line
    of outputlt/infogt
  • ltbodycontentgtEMPTYlt/bodycontentgt
  • lt/taggt
  • lt!-- Other tags defined later ...--gt
  • lt/taglibgt

18
Przyklad uzycia tagliba
  • ltHTMLgt
  • ltHEADgt
  • lt_at_ taglib uri"example-taglib.tld"
    prefix"example" gt
  • ltTITLEgtPrzyklad uzycia
    taglibalt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltH1gtltexampleexample /gtlt/H1gt
  • ltexampleexample /gt
  • lt/BODYgt
  • lt/HTMLgt

19
Dziekuje za uwage
  • Dodatkowe informacje
  • http//java.sun.com
  • http//www.onjava.com
  • http//jakarta.apache.org (Tomcat, Struts)
Write a Comment
User Comments (0)
About PowerShow.com