Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


IPRO - PC Magazine Romania, Februarie 2004
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB

JSP: Java și mai aproape de noi

Mircea Scărlătescu

Dacă acum 10 ani cineva v-ar fi spus că internetul va ajunge pentru multe firme principala metodă de a-și conduce afacerile iar pentru utilizatorii particulari o sursă de informații deosebit de folositoare nu cred să fi fost prea convinși…Și totuși…

Și cum era normal, tehnologiile care să folosească la maxim potențialul internetului nu au întârziat să apară. JSP se încadrează în categoria tehnologiilor de calitate înaltă, recomandată în special mediilor enterprise, dar și celor care doresc să aibă situri realizate calitativ și hostate pe servere performante.

Ce este JSP?

JavaServerPages este o tehnologie bazată pe limbajul Java dezvoltată de Sun (www.sun.com) și care îmbină perfect conținutul static al paginilor Web cu informațiile dinamice, citite funcție de diferite reguli sau date aflate pe diferite suporturi de stocare (în special baze de date). Printre avantajele folosirii JSP putem enumera dezvoltarea paginilor în orice mediu de dezvoltare, și indiferent de platformă, posibilitatea de interacțiune cu obiecte server dar și posibilitatea de extindere a limbajului cu marcaje (tag-uri) customizate după necesități.

Cum se pot rula aplicații JSP?

La fel ca și Servlets, (tehnologiile sunt strâns legate) o posibilitate la îndemâna tuturor este de a instala pachetul software Tomcat, pachet disponibil gratuit pe internet, dezvoltat de fundația Apache Software. Există o multitudine de alte variante, dar aceasta este recomandabilă și din punctul de vedere al resurselor consumate de server. Desigur, în mediile profesionale de dezvoltare e posibil să folosiți unelte dezvoltate de Sun sau IBM, și care sunt extrem de folosite pe plan mondial. Una peste alta însă, alegerea aparține dumneavoastră, și trebuie să faceți alegerea care vă avantajază, nu neaparat cea la moda.

Și totuȘi, ce fac eu cu JSP?

Există două mari categorii de date ce pot să fie introduse într-o pagină de tip JSP. Date (conținut) statice și dinamice. Să o luam pe rând. Conținutul static al unui document care circulă pe Web, reprezintă cod HTML, XML, WML (wireless markup language) și așa mai departe. Acest tip de conținut nu este afectat de interogări ale bazelor de date, de formulare completate de utilizator, etc. Conținutul dinamic însă este exact opusul primului. Bazele de date, identificarea utilizatorilor și alte asemenea aspecte determină direct ce se afișează pe o astfel de pagină cu conținut dinamic. În general, conținutul fix, static este reprezentat de layout-ul paginii care se generează, iar datele sunt generate funcție de diferite opțiuni.

Conținutul static este ´by default´ de tip HTML. Dacă se dorește să conțină să zicem WML (echivalentul pentru telefoane mobile al HTML-ului), trebuie să precizăm explicit acest lucru printr-o declarație de genul

<%@ page contentType="text/vnd.wap.wml"%>

Conținutul dinamic se generează folosind obiecte ale limbajului Java. O primă categorie de obiecte care pot fi utilizate de către programatori sunt obiectele implicite. Aceste sunt obiecte chiar și de tip ´enterprise bean´ sau componente JavaBeans. Iată câteva exemple de obiecte implicite ce pot fi utilizate:

Obiectele specifice ale aplicației sunt obiecte definite de către programatori care ajută pe de o parte implementarea unitară a funcțiilor și proprietăților, așa cum se recomandă în programarea orientată pe obiecte, dar pe de altă parte ajută la o separare a conținutului static de cel dinamic, și implicit a designului și layout-ului paginii de conținutul generat de aplicație în mod dinamic.

Obiect Clasă Scurtă descriere
application javax.servlet.ServletContext Contextul paginii
config javax.servlet.ServletConfig Informațiile de inițializare
a paginii
session javax.servlet.http.HttpSession Obiect de tip sesiune
out j avax.servlet.jsp.JspWriter Streamul de ieșire (răspuns)
al pagini

Elemente de scripting JSP

În paginile JSP veți introduce diferite elemente dinamice, și în cele ce urmează vom descrie o parte dintre ele.

Un lucru extrem de important pentru paginile JSP este precizarea limbajului de scripting ce va fi folosit. Trebuie să spunem că obiectele Java pot să fie chemate (instanțiate) și de alte limbaje în afară de limbajul Java, cel care este implicit selectat. Deci, dacă se dorește folosirea unui alt limbaj, atunci se va scrie la începutul fișierului următoarea linie de cod:

<%@ page language="limbaj" %>

Analog cu importarea claselor necesare atunci când scriem un servlet, sau un alt tip de program Java (applet sau stand-alone) și în JSP este necesară o astfel de declarație; iată mai jos un exemplu:

<%@ page import="java.util.*, java.net.*" %>

Declararea unor variabile sau metode în cadrul unei pagini JSP se realizează prin marcajul

<%! Declaratii metode si variabile %>

Scripletii sunt părti (bucăți) de cod (în Java sau alt limbaj) care este interpretat și executat la server. Declarația unui astfel de scriptlet se face în interiorul tagurilor:

<% … %>

Pentru a scrie o expresie tag-ul utilizat va fi:

<%=… %>

Includerea unui alt fisier în fișierul curent

Astfel de includeri sunt deosebit de necesare și orice programator vă va spune că le-a folosit cel puțin odată. Astfel, și JSP are două mecanisme puse la dispoziție în acest sens:

Prima posibilitate este aceea de a folosi directiva:

<%@ include file="fisier" %>

În acest caz, fișierul precizat este încărcat în fișierul nostru la încărcarea paginii la server (în paranteză fie spus: pe server, orice pagină Web scrisă în JSP este transformată în servlet, de aici și asemănarea între cele două tehnologii).

Există dupa cum am spus și varianta 2, de a include un fișier cu sintaxa:

<jsp:include page="fisier" />

care are semnificația introducerii paginii dorite la execuție. Dacă pagina reprezintă conținut dinamic, atunci el este întâi executat, după care rezultatul se include în pagina inițială, iar dacă ´fișier´ este un fișier static (nu conține cod) atunci el este inclus fără nici o modificare.

Transferul controlului.

Transferul controlului reprezintă posibilitatea de a ajunge din pagina curentă în altă pagină fără intervenția user-ului (se mai cunoaște sub numele de redirectare). JSP permite acest lucru prin intermediul următoarei instrucțiuni:

<jsp:forward page="/main.jsp" />

La redirectarea către o altă pagină, datele ce sunt transmise în pagina de unde se face redirectarea sunt transmise și ele mai departe. Pentru a adăuga date noi, se va folosi următoarea sintaxa:

<jsp:include page="..." >
<jsp:param name="p1"
value="valoarea_asignata"/>
</jsp:include>

Includerea unui Applet

Appleturile sunt programe Java care rulează în interiorul unui browser web (java enabled). Pentru a include un applet într-o pagină JSP, vom folosi următorul tag (destul de înfricoșător la început;) )

<jsp:plugin
   type=" bean|applet"
   code="objectCode"
   codebase="objectCodebase"
   { align="alignment" }
   { archive="archiveList" }
   { height="height" }
   { hspace="hspace" }
   { jreversion="jreversion" }
   { name="componentName" }
   { vspace="vspace" }
   { width="width" }
   { nspluginurl="url" }
   { iepluginurl="url" } >
   { <jsp:params>
   { <jsp:param name="param1" value= value1" /> }+
   </jsp:params> }
   { <jsp:fallback> text de eroare daca nu
   poate rula </jsp:fallback>}
   </jsp:plugin>

Atributele de mai sus, deși la prima vedere cam multe, sunt de fapt configurări ale mașinii Java care trebuie să ruleze componenta. Există și posibilitatea de a cere utilizatorului să downloadeze plug-in-ul necesar rulării, dacă acesta nu este prezent, sau dacă este prea vechi cel existent la client.

Se poate observa că putem transmite parametrii de rulare sub forma

<jsp:params>
<jsp:param name="param1" value= "value1" />
</jsp:params>

pentru appletul nostru.

Taguri definite de utilizator

Un concept modern și folositor în programarea de azi este reprezentat de posibilitatea de a extinde funcționalitatea unui limbaj prin adaugarea în cadrul aplicației a unor instrucțiuni speciale, destinate unui scop precis. Dacă este să dăm un exemplu simplu, atunci ar fi foarte folositor să definim un tag care să se numească email_form și care odată introdus într-o pagină JSP să genereze automat un formular HTML care să cuprindă adresa de reply, subiect și conținut pentru un mesaj electronic care să ajungă către email-ul specificat. Astfel, am putea să definim tag-uri care să ajute progrmarea atăt din punct de vedere al productivității, dar ar ajuta și la eventuale corecturi necesare, sau îmbunătățiri ulterioare ale aplicației.

Aceste tag-uri pot să fie grupate în adevărate biblioteci care sunt utilizate în aplicație (prin importarea bibliotecii).

Înainte să vă apucați de lucru în a vă defini diverse tag-uri este folositor să consultați mai întâi JavaServer Pages Standard Tag Library, o bibliotecă care conține tag-uri necesare multor aplicații. Sunt șanse mari ca pentru aplicația pe care o scrieți să fie deja disponibile o serie de tag-uri customizate și care funcționează ireproșabil. Dezvoltarea aplicației va deveni mult mai ușoară, și de asemnea multe posibile găuri de securitate sau de concepție pot fi eliminate prin folosirea acestor tag-uri.

Putem spune că tot ce e nevoie pentru a deveni un bun programator JSP este documentația, dar în special putină răbdare și timp de a trece prin documentele disponibile pe internet. Spor la muncă!


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro