miercuri, 23 mai 2007

JSP vs ASP

JSP si ASP au in comun cateva concepte de baza. Cu ajutorul lor ne facem viata mai usoara din punctul de vedere al scripturilor pentru partea de server. Ambele folosesc scripturile orientate pe obiecte, si ambele au inceput prin delimitarea scripturilor de restul paginii. Microsoft a inlocuit de fapt ASP cu ASP+ care este mult mai asemanator cu JSP, paginile fiind compilate la cerere si rulate pe o masina virtuala.
Tehnologia JSP este relativ nouă. Prima specificaţie adoptată cu numărul de versiune 1 a aparut la sfârsitul lunii mai a anului 1999. Tag-urile definite de utilizator, integrarea cu XML şi cu platforma Java 2, Enterprise Edition sunt deziderate propuse pentru această versiunea 1.1.
ASP a fost propusă de Microsoft în 1996 şi putem spune că este o tehnologie deja impusă ca standard pe platformele Microsoft. Deşi această tehnologie este foarte complexă, ea suportă limbaje de scripting multiple şi modelul ActiveX al Microsoft. Suportul pentru bibliotecile ActiveX, ce îi dau adevărata putere, o fac însă disponibilă numai pentru platforma NT.

O primă comparaţie între tehnologiile ASP si JSP în funcţie de platformele şi web server-ul folosit este redată în următorul tabel:


Tehnologia ASP Tehnologia JSP
Web Server Microsoft IIS sau Personal Web Server Orice Web server, incluzând Apache, Netscape, si IIS
Platforme Microsoft Windows Cele mai populare platforme, incluzând Solaris Operating Environment, Microsoft Windows, Mac OS, Linux, şi alte implementări UNIX pt. platforme

Mai multe puteti afla de la http://www.daysite.net/programming/jsp.htm

http://www.indiawebdevelopers.com/technology/java/jsp.asp

Pseudo-tag

Paginile JSP folosesc pseudo-tag-uri JSP pentru a transmite instructiuni motorului JSP. Aceste pseudo-tag-uri sunt:

Pseudo-tag Semnificaţie
<%--comentariu ... --%> folosit pentru a scrierea comentariilor în pagină;
<%!cod declarativ.... %> folosit pentru declararea variabilelor si metodelor;
<%@include ... %> folosit pentru a insera în pagină un document extern ce poate fi şi un alt document JSP;
<%@page ... %>

folosit pentru a transmite informaţii referitoare la pagină precum limbajulde scripting, buffer-ul, informaţii despre thread-uri, "pachete importate", modul de tratare al excepţiilor etc;

<%@taglib... %> indică o bibliotecă de tag-uri pe care pagina respectivă le poate invoca. Nu este disponibilă în implementările actuale;
<%=cod expresie.... %> transformă valoarea unei expresii în string şi o scrie la ieşire;
<%fragment de cod..... %> porţiune de cod (care, bineînţeles, poate include declaraţii)

marți, 22 mai 2007

Directive JSP

Intr-un exemplu de mai devreme am folosit java.util.Date(). Se pot utiliza declaratii import in JSP, dar sintexa este putin diferita de cea din Java:

Prima linie din exemplul de mai sus se numeste directiva. O directiva incepe cu semnul <%@.

Directiva de pagina poate contine o lista cu toate pachetele importate. Pentru a importa mai multe de un element, se separa numele pachetelor prin virgula.

Directiva include este utilizata pentru a include in mod fizic continutul unui alt fisier. Fisierul inclus poate fi html, jsp sau orice altveva. De exemplu:

Combinarea scriptlets cu html

Pentru paginile html complicate, utilizarea variabilei out peste tot va duce la pierderea avantajelor oferite de programarea JSP.
Exemplul urmator genereaza o tabela care contine numerele de la 1 la n:

Cel mai important lucru de observat este modul in care apar caracterele <% si %> in mijlocul buclei "for", trecand in scriptlet in html si invers.

Scriptlets

Este dificil sa faci programare serioasa doar folosind expresii Java in pagini html. JSP permite scrierea de blocuri de cod Java in interiorul unui JSP.
Pentru a realiza acest lucru, codul trebuie introdus intre <% si %>.
Acest bloc de cod poarta numele de scriptlet.
Daca modificam exemplul anterior, el va arata astfel:

Implicit un scriptlet nu genereaza html. Daca se doreste ca acesta sa genereze totusi cod html, se poate utiliza o variabila numita "out". Aceasta variabila nu trebuie declarata, ea este predefinita pentru scriptlets (la fel ca si alte variabile). In urmatorul exemplu, scriptletul genereaza html:




Adaugarea continutului dinamic folosind expresiile

Asa cum a spus si Andrei ceva mai devreme, orice html poate fi transformat in jsp prin schimbarea extensiei. Dar ceea ce face JSP util este facilitatea de integrare java.
De exemplu, se pot folosi expresii java astfel:


Secventa de caractere cuprinsa intre <%= si %> constituie o expresie java.

Cum sa faci primul JSP

De acum gata cu teoria... pe scurt, cum putem sa cream propriile pagini folosind JSP.
Tehnologia JSP, pe scurt, pune cod Java intr-o pagina html.
Poti sa iei orice pagina html si sa ii schimbi extensia din .html in .jsp. Daca incarci noul fisier intr-un browser, nu vei observa nimic diferit, doar ca incarcatul paginii va dura mai mult. Dar asta doar la prima incarcare. Daca fisierul este incarcat inca o data, incarcarea va dura ca si in cazul unui fisier html obisnuit.
Ceea ce se intampla in spatele cortinei este faptul ca JSP-ul este transformat intr-un fisier java compilat si rulat. Compilarea are loc doar o singura data, cand incarci pagina.