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.

Motivele pentru care se preferă utilizarea servelet-urilor în locul programarii CGI

  • Eficienţă:
  • În cazul programarii CGI, de fiecare dată când apare o cerere HTTP,este pornit un nou proces ceea ce poate afecta performanţa şi genera probleme de scalabilitate.Folosind Servet-urile, maşina virtuală Java este în execuţie permanentă, crearea unui Servelet însemnând crearea unui fir de execuţie ceea ce este opusul unui proces sistem.
  • Securitate:
  • Servelt-urile se execută într-o zonă restrictivă numită "sandbox" similară cu cea a browserelor web pentru applet-uri.Aceasta realizează protecţia împotriva anumitor Servlet-uri "dăunătoare".
  • Cost:
  • La ora actuală sunt multe servere web "free" sau cu un cost scăzut disponibile pentru utilizare personala sau pentru un volum de trafic scăzut.În cazul deţinerii unui server web, acestuia i se poate ataşa o tehnologie Servelts foarte uşor, rapid şi nu în cele din urmă foarte ieftin.
  • Portabilitate:
  • Servlet-ul API deţine avantajele utilizării platformei de Java.API-ul este structurat într-un mod foarte simplu şi poate fi suportat de aproape toate serverele web astfel că Servlet-urile pot fi mutate de pe o platformă pe alta fără nici un fel de modificări.

luni, 21 mai 2007

Utilitatea JSP

Procesul dezvoltării de pagini de Web dinamice este accelerat de către JSP din următoarele considerente:

  • Separarea generării conţinutului de prezentare
    Prin tehnologia JavaServer Pages, proiectanţii de pagini folosesc tag-uri obişnuite HTML sau XML pentru formatarea rezultatului şi tag-uri JSP sau scriplet-uri pentru generarea conţinutului dinamic al paginii. Logica ce stă în spatele generării conţinutului este cuprinsă în tag-uri şi componente JavaBean, legătura dintre acestea făcându-se în scriplet-urişi totul fiind executat pe server. Astfel, proiectanţii de pagini sau Web masterii pot edita şi lucra cu pagini JSP fără a afecta generarea conţinutului dinamic. Pe partea de server, un engine (motor) JSP interpretează scriplet-urile şi tag-urile JSP, generează conţinutul cerut (accesând componente JavaBean, baze de date folosind JDBC sau prin includerea de fişiere) şi trimite rezultatele înapoi sub forma unei pagini HTML (sau XML) către browser.
  • Reutilizarea componentelor şi a tag-urilor
    Tehnologia JSP permite reutilizarea componentelor precum JavaBeans, Enterprise JavaBeans sau a tag-urilor atât independent, cât şi în cadrul unor unelte interactive de dezvoltare a componentelor şi paginilor de Web. Creatorii de pagini Web nu sunt întotdeauna programatori familiarizaţi cu limbaje de scripting. JSP încapsulează funcţionalităţile necesare pentru crearea de conţinut dinamic în tag-uri de tip XML specifice JSP. Tag-urile JSP standard pot accesa şi instanţia componente JavaBean, pot seta sau obţine atribute ale bean-urilor, pot face download la applet-uri şi pot executa funcţii ce ar fi dificil de implementat. Tehnologia JSP este extensibilă prin dezvoltarea de biblioteci de tag-uri definite de utilizator . Cu timpul vor fi create biblioteci proprii de tag-uri pentru funcţiile folosite cel mai frecvent.
  • "Write once,run anywhere"
    Tehnologia JSP este complet independentă de platformă atât în ceea ce priveşte paginile de Web dinamice, cât şi serverele de Web şi componentele acestora. Aceasta este explicabil deoarece limbajul de scripting pentru paginile JSP se bazează pe Java şi în special pe modul de manipulare a obiectelor în acest limbaj.

vineri, 18 mai 2007

Ce sunt Servlet-urile?

Un servlet Java este un program ce rulează pe server (spre deosebire de applet-uri ce rulează în browser); el preia cereri HTTP de la browser-ul Web şi generează dinamic un răspuns HTML (sau XML). Întreaga pagină Web trebuie astfel să fie conţinută în servlet-ul Java. Dacă un Web designer sau un Web master doreşte să schimbe look-ul paginii respective, ar trebui să editeze şi să recompileze servlet-ul chiar dacă modul de funcţionare ce stă în spatele acestuia rămâne acelaşi.
http://www.inf.ucv.ro/~revista/images/servletjdbc.pdf

Servlet-urile Java permit incastrarea logicii aplicatiei in procese HTTP de tip cerere - raspuns si sunt specificate in "Java Servlet API Specification 2.3", documentatie disponibila la adresa URL: http://java.sun.com/products/servlet/.

Comparate cu tehnica CGI si extensii server proprietare precum NSAPI si ISAPI cadrul servlet-urilor furnizeaza o mai buna abstractie a modelului cerere - raspuns HTTP prin specificarea unei API de programare pentru incapsularea cererilor si raspunsurilor. In plus sevlet-urile au toate avantajele limbajului de programare Java, incluzand independenta fata de platforma de implementare. Interactiunea unui servlet cu un server web prin intermediul unui container web se desfasuara in modul urmator:
ˇ Serverul web poate recunoaste daca o cerere corespunde unei aplicatii web din containerul web.
ˇ Daca cererea este pentru containerul web aceasta este directionata catre acesta.
ˇ Cand containerul web a primit cererea trebuie sa decida ce aplicatie web trebuie s-o trateze. O cerere HTTP poate fi asociata unui servlet, unei pagini JSP ( Java Server Pages) sau oricarei resurse statice. Resursele statice includ pagini HTML/XML, imagini si applet-uri.
ˇ In baza informatiei de asociere din cererea HTTP containerul web determina daca cererea trebuie prelucrata de un servlet. Daca da se creaza o instanta a acestuia si i se transmite parametrii cererii. Pentru a trimite raspunsul servlet-ul poate utiliza metoda println() a obiectului java.io.PrintWriter.

miercuri, 16 mai 2007

Colegi noi

Am intariri! :) Din acest moment vor completa alaturi de mine acest blog, colegii mei de suferinta pentru proiecte: Andreea si Andrei.

Putin despre istoria JSP

Pentru a intelege JSP, trebuie sa ne dam seama de unde vine... Tehnologiile Web au inceput cu HTML si istoria JSP-ului tot de atunci incepe... asa ca primul pas este cunoasterea HTML-ului. Urmeaza apoi Java, Javascript, Java Applet si mai apoi Java servlets

James Gosling a fost cel care a lucrat pe un Web Server de Java in anul 1995 si a devenit fundatorul pentru servlets. 2 ani mai tarziu o echipa condusa de Pavani Diwanji a demarat un proiect al carui rezultat a fost Java Web Server de la Sun.

Lucrurile s-au schimbat in anul 1999, iar o echipa de experti in servlets condusa de James Davidson a creat o noua versiune numita Servlet 2.1, si in acelasi an spre sfarsit a aparut si versiunea Servlet 2.2.

Va las pe voi sa descoperiti mai multe de pe cateva site-uri:

http://raibledesigns.com/rd/entry/the_history_of_jsp

http://www.lavoisier.fr/notice/gbLZO6KK3W23GLXO.html

http://www.samspublishing.com/articles/article.asp?p=31072&seqNum=5&rl=1

Totul are un inceput

Primul proiect pentru care ma documentez este cel pentru SPRC... am nevoie de JSP Servlets...