Sunteți pe pagina 1din 17

javax.servlet.

Servlet Aceast interfa definete metodele pe


durata ciclului de via pentru
un servlet pentru a iniializa Servlet, cererile de serviciu, i
distruge apoi Servlet.
javax.servlet.ServletConfig Aceast interfa definete metode
menite s furnizeze
informaii despre Servlet, cum ar fi sa
parametrii de iniializare, numele, i aa mai departe.
javax.servlet.ServletContext Aceast interfa definete metode
care pot spune
Servletul mai multe despre mediul n care este rulat
n. Servlet poate folosi pentru a obine informaii, cum ar
ca parametri de iniializare pentru aceast cerere sau
container de a fi utilizat.
javax.servlet.httpHttpServletRequest Acest (Hypertext Transfer
Protocol HTTP) specifice
Interfaa extinde javax.servlet.ServletRequest
interfa i definete metode pentru a prelua
informaii din cererea primit.
javax.servlet.http.HttpServletResponse Aceast interfa HTTP
specific extinde
Interfa javax.servlet.ServletResponse i definete
metode pentru a crea un rspuns adecvat la
o solicitare primit.
javax.servlet.http.HttpSession Un HTTP numai interfa care ofer
modaliti de a urmri
un utilizator pe mai multe cereri si cota
informaii ntr-o anumit sesiune.
javax.servlet.GenericServlet Aceast clas ofer un servlet
generic , care este independent de orice
protocol particular . Serviciul de abstract metoda trebuie s fie
implementat de orice subclas a GenericServlet pentru a putea

cererile de proces.
javax.servlet.http.HttpServlet Aceasta este o clas menit n mod
special pentru HTTP . Acesta ofer multe
implementari de metode care pot face manipularea solicitare
HTTP
mult mai uor pentru oricare dintre subclasele sale . HttpServlet
se extinde
GenericServlet .
Pentru un servlet s fie independent de protocol , putei prelungi
clasa javax.servlet.GenericServlet i asigur punerea n aplicare a
dvs. in
Metoda de serviciu modificat n Servlet dumneavoastr. Cu toate
acestea , pentru c Servlets sunt, n general
utilizate pentru a comunica prin HTTP , utilizarea obinuit este de
a extinde
clasa javax.servlet.http.HttpServlet i , n funcie de natura cererii
,
suprascrierea metodele corespunztoare . Te va lipi de extinderea
HttpServlet pentru
toate aceste exemple .
Pentru diferitele tipuri de metode HTTP , exist metode
corespunztoare
n interfaa HttpServlet . Metodele sunt doGet , doPost , doHead ,
doPut ,
doTrace , doOptions i doDelete . Pentru c GET i POST sunt cele
dou cele mai multe
metode HTTP utilizate n mod obinuit , metodele doGet i doPost
sunt cele mai
cele importante oferite de clasa HttpServlet :

GET: O solicitare GET este n cazul n care informaiile de solicitare


este trimis ca parte
din URL-ul. Numele cerere de parametri i valorile lor apar ca
o parte din URL-ul. n URL-ul http: // localhost: 8080 / TestServlet?
paramOne = Oracle & paramTwo = JDeveloper, cei doi parametri
de cerere

sunt paramOne i paramTwo i valorile lor sunt Oracle i


JDeveloper,
respectiv. Not utilizarea celor? i & Sign. Metoda doGet de
Servlet este invocat n mod automat atunci cnd Servlet
ntlnete o prezentare
cerere.
POST: ntr-o cerere POST, datele sunt trimise ca parte a corpului
mesajului
i nu ca parte a URL. cereri POST sunt n general ntlnite n
caz de depuneri formular HTML. Valorile cmpurilor de formular
sunt trimise
usin0g POST i nu apar ca parte a URL-ului. Metoda doPost
din Servlet este invocat n mod automat atunci cnd ntlnirile
Servlet
o cerere POST.
Cele mai multe Servlei nu depesc interfeele i clasele
menionate n tabelul 5-1
i Tabelul 5-2. O bun nelegere a acestora este esenial pentru
a nelege modul n care
Servleturile locul de munc. Acest lucru este valabil mai ales
atunci cnd utilizai instrumente avansate, cum ar fi
JDeveloper deoarece instrumentul face crearea att de simplu,
nct oamenii de multe ori nu reuesc s
neleag fundamentele care stau la baza.
Noul modul Web i Servlet
Veti scufunda acum ntr- un exemplu n cazul n care vei crea o
aplicaie Web i
un servlet de baz care va fi o parte a cererii . Servlet va accepta
un prim
numele i prenumele ca intrare i flash, un mesaj de bun venit .
nainte de a crea ceva n JDeveloper , avei nevoie de un spaiu de
lucru i de proiect .
n acest caz , vei utiliza MyJavaApps spaiu de lucru pe care le-ai
creat n capitolul 3 .
Suntei liber s utilizai orice alt spaiu de lucru . Nu exist setri
pentru spaiul de lucru sunt relevante

la acest proiect . Veti crea urmatorul un nou proiect menit n mod


special pentru Web
aplicatii . Urmai aceti pai :
1. Selectai spaiul de lucru MyJavaApps i selectai noua opiune
pentru a v luai
la Galeria Nou , aa cum se arat n figura 5-2 .
n etapa 1 din expertul care urmeaz , numele proiectului i
directorul
BasicWebApp .
3. La pasul 2 , aa cum se arat n Figura 5-3 , expertul populeaza
un document implicit
rdcin , numele aplicaiei web i rdcin de context .
Documentul rdcin
directorul specificat va servi ca referin de baz pe care
containerul
se va folosi pentru a accesa fiiere n aplicaia Web . Schimba
rdcina contextului
la basicwebapp . Nu este necesar s modificai oricare dintre
celelalte setri .
4. Facei clic pe Next .
5. Facei clic pe butonul Finish .
Web Setri Modulul Project
Acum, c ai creat un nou modul Web, trebuie s se uite la proiect
proprieti relevante pentru un modul Web . n caseta de dialog
Proprieti proiect ,
selectai opiunea comun intrare Trasee. n ecranul prezentat
n Figura 5-4 ,
schimba pachetul implicit la com.jdevbook.chap5 . Reinei
directorul unde
calea surs Java este meninut i directorul HTML rdcin .
Acest director
formeaz baza pentru orice link-uri HTML , JSP-uri i imagini . Nu
ai nevoie sa
modificai aceste setri .
NOT Numirea src directorul surs Java i avnd-o sub

directorul WEB-INF este o chestiune de convenie. caietul de


sarcini
nu forai src numele sau locaia, deoarece dup implementare,
locaia codului surs este lipsit de importan pentru container.
n continuare, selectai opiunea Tehnologie comun Domeniul
de aplicare n proprietile proiectului.
n ecranul prezentat n Figura 5-5, putei vedea pagina Domeniu
de aplicare Tehnologie
pentru un proiect web. Pentru c intenionai doar s utilizai un
servlet, nu trebuie s
face orice modificare a domeniului tehnologiei proiectului.
Ai acum un modul Web propriu n loc i poate continua pentru a
aduga
Servleturile i JSP-uri la cerere. Selectai BasicWebApp.jpr
proiectului n cadrul
Navigator aplicatii sau System Navigator i selectai noua opiune,
fie prin
clic dreapta sau utiliznd meniul File. n Galeria Nou afiat,
mutaiseciunea Web Tier. Aici, selectai opiunea Servlet. Vei constata
c JDeveloper
este capabil de a crea un nou servlet HTTP, filtru Servlet i
asculttor Servlet.
Alege HTTP Servlet, i facei clic pe OK.
Servlet Crearea i implementare
n etapa 1 a expertului, introducei numele Servlet ca
WelcomeServlet; pachetul
Numele ar trebui s fie aceeai ca i pachetul implicit ai
menionat n setrile de proiect,
com.jdevbook.chap5. Aa cum se arat n Figura 5-6, verificai
Generate antet
Comentarii opiunea de a avea JDeveloper insera comentarii n
Servlet generat
cod. Alege doGet ca singura metod care urmeaz s fie pus n
aplicare.
NOT unic Opiunea Subiect model va primi Servlet
clasa pentru a pune n aplicare o interfa marker de gol numit

javax.Servlet.SingleThreadModel. Servleturile prin utilizarea


implicit multithreading
astfel nct s aib o instan de manipulare Servlet
mai multe cereri. Cu toate acestea, n cazul n care dorii o
instan s proceseze
doar o singur cerere, la un moment dat, de punere n aplicare
SingleThreadModel
servete scopului. O astfel de utilizare nu este recomandabil i
este inutil
n cele mai multe cazuri.
Not diferitele opiuni afiate n generarea de coninut de tip
drop-down
list. Alegerea WML sau XHTML se va schimba doar tipul de
coninut pentru rspunsul
trimis i etichetele implicite generate de JDeveloper. Pentru acest
exemplu, v va lipi
cu HTML.
Figura 5-6. Creai HTTP Servlet Wizard, etapa 1, setarea
informaiilor servlet
NOT unic Opiunea Subiect model va primi Servlet
clasa pentru a pune n aplicare o interfa marker de gol numit
javax.Servlet.SingleThreadModel. Servleturile prin utilizarea
implicit multithreading
astfel nct s aib o instan de manipulare Servlet
mai multe cereri. Cu toate acestea, n cazul n care dorii o
instan s proceseze
doar o singur cerere, la un moment dat, de punere n aplicare
SingleThreadModel
servete scopului. O astfel de utilizare nu este recomandabil i
este inutil
n cele mai multe cazuri.
Not diferitele opiuni afiate n generarea de coninut de tip
drop-down
list. Alegerea WML sau XHTML se va schimba doar tipul de
coninut pentru rspunsul
trimis i etichetele implicite generate de JDeveloper. Pentru acest
exemplu, v va lipi
cu HTML.

Pasul 2 al expertului este ceea ce drastic taie cantitatea de cod pe


care
Trebuie s scrie. Detaliile specificate n figura 5-7 transmit c va fi
obtinerea
doi parametrii numii fname i lname ca parte a cererii. Valoarea a
aceti parametri vor fi preluai de cerere i stocate n dou
variabile cu coarde
numit strFname i strLname, respectiv. Not lista derulant Type;
dac specificai o alt ar dect String tip, JDeveloper va crea, de
asemenea cod pentru a converti
tipul de date din irul primit n cererea de, s zicem, un int sau
dublu.
Introducei aceste detalii i facei clic pe Next
n etapa 3, prezentat n Figura 5-8, v poate furniza informaiile
de mapare. De
specificnd o cartografiere, vei putea accesa WelcomeServlet
folosind
model specificat. Aici, specificai modelul de URL ca * .welcome.
n acest caz,
nseamn c orice solicitare care se potrivete cu modelul *
.welcome vor fi direcionate ctre
WelcomeServlet. Aceast setare se va reflecta n descriptorul de
implementare web. Asa de
cereri n form de <context rdcin> /abcd.welcome sau
<context rdcin> /. Bine ai venit
va fi direcionat ctre WelcomeServlet. Facei clic pe butonul
Finish, i voila! Tu ai
codul Servlet precum descriptor de implementare web pregtit
pentru tine.
Fiierele de web.xml i WelcomeServlet.java vor fi listate n
Sistemul
Navigator. Deschide fiierul web.xml pentru a verifica modul n
care diferitele etape Create
HTTP Servlet Wizard au condus la anumite etichete fiind inserate
n fiierul. Fiierul
WelcomeServlet.java este aproape n forma sa final. Deschide
fiierul WelcomeServlet.java

n editorul de cod. n afar de cod pentru a obine parametrii de


cerere, chiar i de baz
Codul HTML generaie este n loc. Singura schimbare va face este
s introduci
urmtoarea linie:
out.println ( "<p> Welcome" + + strFname "" + strLname + "</
p>");
Aceast linie va crea un nou alineat n pagina HTML afiat i
bliul
un mesaj de bun venit folosind primul i ultimul nume preluat de
la solicitare. Asa de
codul de generare HTML arata ca acest lucru:
out.println ( "<html>");
out.println ( "<head> <title> WelcomeServlet </ title> </
head>");
out.println ( "<body>");
out.println ( "<p> servletul a primit un GET Acesta este rspunsul
</ p>..");
// Utilizai prenumele i numele primit ca parte a cererii.
out.println ( "<p> Welcome" + + strFname "" + strLname + "</
p>");
out.println ( "</ body> </ html>");
out.close ();
Apoi, alegei opiunea Run WelcomeServlet.java, fie prin utilizarea
Run
meniu sau prin Navigator sau sistem de click dreapta pe lista de
fiiere n aplicaii
Navigator i alegnd aceast opiune din lista pop-up. JDeveloper
va compila
i implementai codul de la serverul OC4J ncorporat c voi vorbi
despre ea n
seciunea urmtoare. Browser-ul dvs. prestabilit va fi, de
asemenea, executat i adresa URL care va
fi accesat este http://127.0.0.1:8988/basicwebapp/*.welcome.
Dup cum probabil
au dat seama, aceast adres URL este un rezultat al rdcinii
contextului i tu de cartografiere
specificat n timpul crerii Servlet. nlocuii * cu orice de la ABCD
la

onomatopee, i vei primi n continuare la aceeai pagin, prin


amabilitatea cartografiere
ai specificat.
NOT Dac este necesar, putei configura browser-ul Web i
setrile proxy
din / Proxy seciunea Web Browser n dialogul Preferine.
Reinei c mesajul afiat pe pagina este "Welcome null null."
Acest lucru se datoreaz faptului c parametrii nu sunt parte a
cererii, astfel nct apelul
request.getParameter () returneaza null.
NOT Metoda implicit este HTTP GET. Deci, chiar dac nu exist
o cerere
Parametrii fac parte din URL-ul, metoda doGet devine invocat.
Pentru a afia mesajul de ateptat, trebuie s modificai URL-ul
pentru a trece
Parametrii cererii. ncercai s modificai adresa URL la
http://127.0.0.1:8988/basicwebapp/
tennis.welcome? fname = Boris & lname = Becker. Ar trebui s
avei acum un mesaj
primitoare Boris Becker pe pagina HTML.
OC4J ncorporat
O caracteristic important a JDeveloper este serverul Oracle
Application
Containere pentru J2EE (OC4J) server care este ncorporat n
JDeveloper.
serverul, fiind ncorporat i strns integrate n JDeveloper, elimin
timpul de instalare i configurare implicate n configurarea server.
Rapid
implementarea i uurina n utilizare sunt, de asemenea,
beneficii care nu pot fi ignorate.
server de OC4J care face parte din JDeveloper vine cu EJB i un
servlet Java
recipient, mpreun cu un traductor JSP i runtime JSP.
Rularea aplicaiilor Web, depanare le, profilare-le, i folosind
instrumente de mbuntire a codului, cum ar fi CodeCoach
asupra lor este tot fcut posibil
folosind OC4J ncorporat. Pentru c implementarea la nivel de
producie nu este scopul

a containerului OC4J ncorporat, acesta nu ofer prea multe


posibiliti de configurare n cadrul JDeveloper.
Serverul a OC4J ncorporat este pornit automat atunci cnd
ruleaz, depanare,
i crearea de profiluri sau n timpul utilizrii CodeCoach pe o
component J2EE, cum ar fi o
EJB, Servlet, sau un JSP. Pentru a opri OC4J, putei termina
procesul de la Run
managerul folosind opiunea View Run Manager.
NOT Numai o instan a serverului OC4J ncorporat poate fi rulat
la un moment dat. Dac ncerci s nceap o alt instan,
instana anterioar
devine terminat.
configuraie OC4J pn la versiunea 9.0.3 a fost destul de simplu;
in orice caz,
cu versiunea 9.0.5, lucrurile s-au schimbat. configuraie OC4J are
acum o separat
instrument enumerate la setare atunci cnd alegei Instrumente
Setri server Embedded OC4J,
aa cum se arat n Figura 5-9. Configurarea OC4J furnizate prin
aceast interfa este
stocate ntr-un fiier numit server.xml, care poate fi chiar editat
manual.
Capitolul 5
88
1429C05CMP1.qxd 12/17/03 11:22 Page 88
Servlet i dezvoltare JSP
89
Figura 5-9. Configurarea serverului OC4J
In cele mai multe scenarii, nu va trebui s manipuleze oricare
dintre setrile implicite
a serverului. Cu toate acestea, dac dorii s utilizai o instalaie
OC4J alta dect
cea cuplat cu JDeveloper, ai putea specifica directorul pentru
instalare.
Schimbarea opiunilor portuare poate preveni conflictele dintre
porturi cu alte rulare

cazuri de OC4J sau de un alt server. Load All System JARs i


Cutare
Toate EJBs n timpul Opiuni de pornire ar putea ncetini pornirea
serverului i nu sunt
recomandat.
Atunci cnd alegei opiunea de oprire n configuraia OC4J
Embedded,
putei specifica metodologia de oprire pentru a utiliza. O nchidere
graios este
cea mai bun opiune; cu toate acestea, n anumite circumstane,
o nchidere forat devine
esenial.
Vi se ofer opiuni de configurare pentru OC4J la dou niveluri,
Global
Spaiul de lucru curent. Voi explica unele dintre elementele de
configurare atunci cnd
le ntlnim n exemplul. Acum, c ai avut un sentiment de
aplicatii J2EE
i OC4J, va trece la ceea ce este elementul cel mai utilizat pe
scar larg de
J2EE, JSP-uri.
Java Server Pages
A venit mult JSP-uri dup Servlei au aprut; cu toate acestea,
astzi sunt toate JSP-urile de-a lungul
loc, dar nu multe Servlei noi sunt n curs de elaborare. Motivul
principal pentru
declinul Servleturi pentru apariia JSP-urilor a fost c Servleturi au
fost doar
nu este suficient pentru a genera o mulime de ieire HTML bun.
n seciunea "servlet Crearea si implementare" anterioare, ai
creat o baz
Servlet care fulger un mesaj de bun venit. De notat c, n acest
Servlet, n afar de
logica de afiare a mesajului, exist o mulime de ieire HTML
fiind generate
care nu este direct relevant pentru scopul Servlet. Imaginai-v
dac servlet-ul

a trebuit s genereze HTML pentru sute de pagini complexe,


avnd imagini i o mulime de
JavaScript. Destul de un gnd nfricotor.
JSP-uri schimbat lucrurile astfel nct Java este utilizat numai n
cazul n care este absolut necesar.
n cazul n care aceeai funcionalitate Servlet urmau s fie puse
n aplicare ca JSP, JSP ar
arata ceva de genul:
<%
String strFname = request.getParameter ( "fname");
String strLname = request.getParameter ( "lname");
%>
<Html>
<Head>
<Title> Hello </ title>
</ Head>
<Body>
<P> Welcome <% = strFname%> <% = strLname%> </ p>
</ Body>
</ Html>
Dac v ntrebai cnd trebuie s scrie clasa Java i de a face
toate
extinderea claselor i a metodelor de punere n aplicare, apoi
surpriza! Acest lucru este tot ce este nevoie.
Nu este nevoie de a crea i de a compila orice clas Java. Doar
ncorpora orice Java
avei nevoie chiar n HTML, si esti pe drumul tau. Acest lucru se
face Embedding
folosind etichete speciale; putei crea chiar propriile etichete.
Cum funcioneaz sistemul JSP
Natura cerinelor Java care s execute ceva scris n Java, aceasta
trebuie s
sunt supuse unei conversii la bytecodes, care poate fi executat de
ctre Java virtuale
main (JVM). Tu nu scrii i compilarea codului Java n JSP-ul;
este containerul care face asta pentru tine. n faza de traducere,
containerul
genereaz un cod Java pentru tot coninutul ntr-un JSP i, de asemenea,

genereaz un corespondent * Fiier .java. Fiierul este compilat pentru a


genera un fiier de clas servlet, i este acest servlet care face de fapt
treaba pentru tine. Cu toate c un dezvoltator JSP nu are nevoie cu
adevrat s fie contieni de metodele generate n codul Java sau
interfeele puse n aplicare, aceasta ajut ntotdeauna s le n elege.
Pachetul javax.servlet.jsp este ceea ce detine API Servlet clase i interfe e
JSP-legate. Nevoile de interfa javax.servlet.jsp.JspPage care urmeaz s
fie pus n aplicare, iar metoda _jspService este metoda care corespunde la
corpul paginii JSP. Dezvoltatorul JSP nu ar trebui s defineasc
_jspService metoda n JSP, deoarece recipientul define te aceast
metod. NOT Fiierele Java create pentru JSP-uri, de i oarecum
nfricotor vedere, poate fi extrem de util pentru scopuri de depanare.
Ciudat suficient, toi vnztorii container par s fantezie crearea acestor
fiiere n cele mai obscure de locaii. Se caut modelul * <numele
fiierului> * .java Este cel mai simplu mod de a localiza aceste fi iere Java.
OC4J creeaz o nou director numit .jsps n directorul WEB-INF / clase de
Web cerere la care JSP aparine. Cele mai multe containere, cu excep ia
cazului n care altfel instruit, compila JSP-ul ntr-un servlet numai pe prima
invocarea JSP-ului. Astfel nct vei observa un rspuns lent primul dat
cnd invoca un JSP. Cu toate acestea, pentru c urmtoarea cerere va fi
deservite de Servlet compilat deja n vigoare, rspunsul va fi mult mai
rapid. Odata ce Servlet genereaz corespunztor HTML, acesta este doar
HTML care merge dincolo de a clientul. Astfel nct orice tag-uri JSP pe
care le utilizai nu sunt vizibile la partea de client; ceea ce pare este pur i
simplu HTML. Fiierele JSP-uri sunt tratate mai mult ca fi iere HTML
obinuite dect cele cum ar fi codul Java. Pentru JSP s fie accesibile
publicului, acesta poate fi plasat n orice director, altele dect cele Director
WEB-INF sau subdirectoarele sale. JSP Elemente Pentru ca recipientul s
fie capabil de a converti un JSP care include HTML, nglobat cod Java, i
tag-uri speciale, este imperativ ca JSP-ul trebuie s urmeze o cert Sintaxa
pentru container pentru a fi capabil s-l transforme ntr-un fi ier Java i
compila-l. n conformitate cu specificaia JSP 1.2, multe etichete care a
suferit o modificare pentru a face acestea nu sunt conforme cu standardele
XML. Utilizarea acestor noi etichete XML cum ar fi, este acum este posibil
pentru a scrie un JSP care ader la regulile pentru XML bine formate. Vei
mai nti uita-te repede la diferitele elemente JSP i apoi a crea un nou
JSP n JDeveloper care folosete toate aceste elemente.
directiv
Directivele sunt instruciuni pentru container care urmeaz s fie
prelucrate n timp ce traducerea

JSP ntr-un servlet. Directivele joac un rol n codul Servlet care


devine
generate. Tipurile de directive sunt dup cum urmeaz:
Pagina: Directiva pagin este menit s specifice proprietile
JSP.
Lucruri, cum ar fi clasele de import, pagina de eroare de a utiliza,
precum i coninutul
tip care urmeaz s fie generate sunt specificate n directiv
pagina.
includ: JSP-urile au o capacitate de a include text i / sau codul
de drept n cazul n care
pagin este tradus; coninutul n JSP, mpreun cu inclus
coninutul este tradus ntr-o singur servlet i apoi compilate.
Include
directiv poate fi utilizat pentru a specifica resursa care trebuie
incluse.
taglib: Pentru a utiliza bibliotecile de etichete personalizate ntro pagin JSP, trebuie mai nti s specificai
bibliotecile tag-ul care urmeaz s fie utilizate n directiv pagina.
Aceasta este sintaxa normal:
<% @ Page import = "java.util.ArrayList" limba = "java"%>
Aceasta este sintaxa XML:
<Jsp: directive.page import = "java.util.ArrayList" limba =
"java" />
declaraii
Declaraiile sunt folosite pentru a declara noi variabile i metode
care pot fi folosite
de-a lungul JSP. Variabilele declarate ntr-o declaraie sunt
convertite n
membri ai instan Servlet create i metodele definite sunt
reflectate ca
metode noi n instan Servlet.
Dac te uii la fiierul Java creat pentru pagina JSP, vei observa
c
metodele i variabilele declarate ntr-o declaraie apar,
independente de
Metoda _jspService care are cea mai mare parte de alt procesare
solicitare i rspuns

logica de generare n ea. Coninutul unei declaraii trebuie doar s


urmeze normale
reguli i sintaxa Java.
Aceasta este sintaxa normal:
Aceasta este sintaxa XML:
<Jsp: Declaraia>
int i = 0;
</ Jsp: Declaraia>
Scriptlets
Scriptlets sunt probabil cele mai folosite, precum i caracteristica utilizate n mod abuziv de
JSP. Cu toate ca
utilizarea scriptlets este n scdere din cauza popularitii tot mai mare de personalizat
biblioteci tag-ul, scriptlets sunt nc omniprezente n lumea JSP. Scriptlets sunt Java
fragmente de cod care sunt ncorporate chiar n JSP. Mod de a merge despre el este de
cred c scrii cod Java ntr-o metod i au cteva predefinite
obiecte, cum ar fi sesiune, pagini i aplicaie pentru a lucra cu.
NOT Cel mai simplu mod de a distinge ntre scriptlets i declaraii
este acel cod scriptlet se termin n metoda _jspService de
Servlet generat pentru JSP, iar codul pentru declaraiile
apare n afara acestei metode.
Scriptlets au fost destul de popular n primele zile ale JSP; Cu toate acestea, n aceste zile,
orice dezvoltator care utilizeaz coduri scriptlets este dat ceea ce eu cred c este Microsoft
tratament. tii lucrul va funciona bine initial, dar va provoca dureri de cap
mai tarziu. i chiar dac nu, tu l urti, oricum. Aa c pentru a rmne popular i s apar
inteligent, stai departe de scriptlets i de a folosi tag-uri personalizate ori de cte ori este
posibil. Cu ajutorul
tag-uri create pentru a realiza o anumit sarcin, n loc de a scrie cod Java pentru ea
menine JSP uor de neles i de ntreinut. Standardizata i bine testate
tag-uri sunt, de asemenea, este puin probabil s arunce erori neateptate n timpul rulrii.
Aceasta este sintaxa normal:
<%
Println ( "Intr-un scriptlet");
%>
Aceasta este sintaxa XML:
<Jsp: scriptlet>
Println ( "Intr-un scriptlet");
</ Jsp: scriptlet>
Expresii
O expresie este doar o declaraie out.println. n codul Servlet generat,
coninutul expresiei JSP sunt parametri la un apel metoda out.println,
n cazul n care afar este obiectul JspWriter implicite furnizate. Prin urmare, expresia <% = nou
java.util.Date ()%> ar fi reprezentat n metoda _jspService a Codul de servlet ca out.print (nou
java.util.Date ()) ;. O variabil declarai ntr-o declara ie sau un scriptlet poate fi utilizat ntr-un expresie
pentru a obine valoarea la afiaj. O greeal comun este s pun capt expresie cu punct i virgul.
Acest lucru v va da o eroare de compilare deoarece punnd punct i virgul ntr-un apel println este doar
Java incorect. Aceasta este sintaxa normal: <% = New java.util.Date ()%> Aceasta este sintaxa XML:
<Jsp: expresie> nou java.util.Date () </ jsp: expresie> aciuni Ac iunile sunt unele dintre cele mai
inteligente tag-uri, care formeaz o parte din caietul de sarcini de baz JSP. n func ie de valorile
atributelor, aciuni ndeplini sarcini specifice. Standardul Aciuni JSP sunt dup cum urmeaz: jsp:
include: Include un alt JSP ntr-un JSP. Acest lucru este diferit de includ directiv, ntruct acestea se
numr este prelucrat la ora cerere, spre deosebire de directiv includ, n cazul n care cele dou JSPuri formeaz o singur unitate de traducere. jsp: nainte: Aceasta transmite o solicitare ctre un alt JSP.
jsp: useBean: Aceasta declar un JavaBean pentru a fi utilizat n JSP. jsp: setProperty Aceasta

stabilete valorile de proprietate ale boabelor de Java folosite. jsp: getProperty: Aceasta devine valorile
de proprietate ale bobului Java utilizate. JSP Obiecte implicite Pentru ceva care urmeaz s fie realizat
n JSP, avei nevoie pentru a putea accesa i utilizai sesiunea utilizatorului, detalii prelua cerere,
informaii de rspuns set, i aa mai departe. Cu toate acestea, scris codul pentru a ob ine aceste lucruri
n fiecare JSP nu are sens. Astfel nct containerul declar i ini ializeaz variabile care ar putea oferi
necesar funcionalitate Din nou, dac v referii la codul Servlet, vei gsi c n primele cteva
rnduri ale
metoda _jspService nu au nimic de-a face cu ieire sau logica JSP. Aceste
linii de cod creeaz numai aceste variabile pentru utilizarea de cod specific pentru JSP.
Aa c n cadrul JSP, dezvoltatorul poate presupune pur i simplu c aceste variabile sunt
acolo i s le foloseasc. Pentru un MyTestJSP.jsp JSP numit, OC4J genereaz un fiier numit
_MyTestJSP.java. Metoda _jspService n acest cod Servlet va ncepe cu
aceste linii (variabilele sunt caractere aldine):
public void _jspService (HttpServletRequest cerere, HttpServletResponse rspuns)
arunc java.io.IOException, ServletException {
response.setContentType ( "text / html; charset = windows-1252");
/ * Configurat variabilele intrinseci folosind Goober pageContext:
** Sesiune = HttpSession
** Cerere = ServletContext
** Out = JspWriter
** Pagina = acest
** Config = ServletConfig
** Toate fasole sesiune / app declarate n globals.jsa
*/
PageContext pageContext = JspFactory.getDefaultFactory (). GetPageContext (aceasta
, Cerere, ca rspuns, nul, adevrat, JspWriter.DEFAULT_BUFFER, adevrat);
// Not: acest lucru nu este emis n cazul n care directiva sesiunea == false
HttpSession sesiune = pageContext.getSession ();
n cazul n care (pageContext.getAttribute (OracleJspRuntime.JSP_REQUEST_REDIRECTED
, PageContext.REQUEST_SCOPE)! = Null) {
pageContext.setAttribute (OracleJspRuntime.JSP_PAGE_DONTNOTIFY, "true"
, PageContext.PAGE_SCOPE);
. JspFactory.getDefaultFactory () releasePageContext (pageContext);
ntoarcere;
}
int __jsp_tag_starteval;
aplicaie ServletContext = pageContext.getServletContext ();
JspWriter out = pageContext.getOut ();
pagina _MyTestJsp = acest lucru;
ServletConfig config = pageContext.getServletConfig ();

Alegei opiunea JSP pagin , iar numele noului JSP Welcome.jsp . JDeveloper
creeaz un JSP -oase goale , care are un titlu i afieaz ora curent . JSP
apare n dou puncte de vedere , Design si cod. Design View este editorul WYSIWYG ,
dar avei ntotdeauna opiunea de editare direct codul . Caracteristicile de WYSIWYG
sunt similare , folosind orice alt editor de cuvnt . Bara de instrumente prevzut n
schimbare mrci
formatarea textului , folosind liste , culori , i aa mai departe o sarcin simpl . Ce
intenionai s facei
n exemplul JSP este s ia de intrare de utilizator nume i prenume i apelai
WelcomeServlet cu aceste valori , ca parte a cererii .
Pentru aceasta avei nevoie pentru a crea un formular HTML . Conform unei utilizri normale
HTML , The

Formularul trebuie s fie nchis ntre etichetele body ale HTML . cu JDeveloper
avei nevoie pentru a scrie cu greu orice HTML . n timp ce n ecranul de proiectare ,
selectai HTML
opiune n Component Palette pentru a afia paleta HTML prezentat n
Pentru a rula JSP, selectai comanda Run Welcome.jsp. OC4J ncorporat
serverul va porni, iar browser-ul implicit se va deschide la URL-ul pentru JSP. Pe
pagina afiat, introducei numele si prenumele, apoi facei clic pe Remitere
buton. WelcomeServlet trebuie invocat, afind un mesaj de ntmpinare
cu numele i prenumele tu introdus.
Acest exemplu a fost mai mult despre HTML dect JSP, dar se va folosi i de a explora
n continuare n timp ce se ocup JSP-uri cu integrarea JDeveloper cu Struts.
Biblioteci Tag JSP Standard
biblioteci de etichete personalizate dein un set de tag-uri, care sunt utilizate pe linii foarte
asemntoare cu normale
tag-uri HTML, dar ndeplinesc funcii speciale, care sunt dincolo de tag-uri ce HTML pot
obine. Aceste biblioteci tag-ul furnizeaz tag-uri care pot formata date, modifica siruri de
caractere i
efectueaz alte activiti similare. Unele cod Java ruleaz n fundal pentru a obine aceste
tag-uri
pentru a ndeplini sarcina.
Odat cu adoptarea tot mai mare i utilizarea bibliotecilor de tag-uri personalizate a aprut
trebuie s aib biblioteci tag-ul furnizeaz funcionalitatea ntr-o manier standardizat. Cu
toate ca
liber ter parte biblioteci tag-ul sunt disponibile, o necesitate a existat pentru
standardizarea
unele tag-uri utilizate n mod obinuit.
JSP Biblioteci Tag Standard (JSTL) este o specificaie i nu o punere n aplicare
pentru tag-uri; o putei gsi la http://java.sun.com/products/jstl. JDeveloper
prevede Componenta Paletele pentru JSTL Core, formatare, SQL i XML. Utilizarea
JSTL tags ori de cte ori este posibil este o alternativ mult mai bun dect n curs de
dezvoltare propriu
tag-uri sau scrierea de cod n JSP-ul.
Ca parte a versiunii 1.1 - b2 de lonjeroane care vine integrat cu JDeveloper , Struts
ofer ase biblioteci tag-ul : template , html , logica , cuibrit , fasole , i dale . tag-ul
biblioteci face dezvoltarea JSP mult mai uor i elegant . Aceste etichete , dac este utilizat
n mod corespunztor , poate mai mult sau mai puin s elimine orice nevoie de a utiliza
codul Java n cadrul JSP -ul .
Bibliotecile folosite cel mai des sunt urmtoarele :
fasole : Aceast bibliotec ofer multe etichete pentru a face utilizarea i definirea unor
noi
fasole posibile .
logic : Aceast bibliotec ofer tag-uri , care , n funcie de condiii , se pot efectua
diverse aciuni . Acesta este utilizat n principal ca o opiune mai bun pentru utilizarea Java
n cazul n care altcineva
declaraie sau pentru bucle .
html : Aceast bibliotec ofer tag-uri pentru a nlocui cele mai multe tag- uri HTML de
baz i
permite crearea de pagini HTML dinamice

S-ar putea să vă placă și