Java Server Pages
1. UvodGlavna tema ovog seminara je Java Server Pages(JSP).Da bi razumjeli sam JSP, najprije je opisano što je to servlet tehnologija iz koje se JSP izvodi.Ukratko je dan opis arhitekture i elementi JSP-a, da bi na kraju zaključili koje su njegove prednosti u odnosu na druge tehnologije. 2. Java Servlet TehnologijaKako se Web počeo koristiti za usluge isporuke, tako su i service provideri prepoznali potrebu za dinamičkim sadržajima. Appleti, kao jedni od najranijih oblika dinamičkih sadržaja, fokusirani su na upotrebu klijentske strane za prikaz dinamičkog sadržaja krajnjem korisniku. Istovremeno se za tu svrhu istražuje i korištenje serverske platforme. Početno su glavna tehnologija za generiranje dinamičkog sadržaja bile Common Gateway Interface (CGI) skripte. Iako je široko korištena, tehnologija CGI skripti ima velik broj nedostataka.Kako bi se riješili ti nedostatci kreirana je tehnologija Java Servleta, kao prenosiv način pružanja dinamičkih sadržaja orijentiranih prema korisniku.
2.1. Što je Servlet? Servlet je klasa programskog jezika Java, koja se koristi kako bi proširila mogućnosti servera i host aplikacija kojima se pristupa preko programskog modela zahtjev-odgovor (request-response). Iako servleti mogu odgovoriti na bilo koji tip zahtjeva, obično se koriste kako bi se proširile aplikacije koje se nalaze na Web serverima. Za takve aplikacije, Java Servlet tehnologija definira HTTP specifične servlet klase. Servlet se izvršava unutar Web servera, i za razliku od appleta ne zahtijeva grafičko korisničko sučelje. Serveri koji sadrže servlet mehanizme (engl. servlet engine) nazivaju se konteineri (engl. container ). Program klijenta koji želi pristupiti Web serveru može biti napisan u bilo kojem programskom jeziku. On pristupa web serveru i izvodi zahtjev. Servlet mehanizam na web serveru procesira zahtjev i prosljeđuje ga servletu. Nakon toga servlet šalje odgovor preko web servera natrag klijentu. Ključna prednost Java Servlet tehnologije je brzina. Za razliku od CGI programa, servleti se jednom učitavaju u memoriju i izvode iz memorije nakon početnog učitavanja. Serveti se stvaraju kao niti (engl. thread ), i po prirodi su višenitni.
3. Java Server PagesJava Server Pages (JSP) tehnologija kao ekstenzija servlet tehnologije je spoj HTML-a (ili XML-a) i Java koda, kako bi se dobila web stranica sa dinamičkim sadržajem.Ona ima jasnu podjelu između prezentacije i dinamičkog sadržaja.Time omogućuje dizajnerima da iznova mijenjaju izgled stranice, a da ujedno ne ometaju i ne mijenjaju dinamički sadržaj.Također omogućava web dizajneru da umeće Java kod unutar HTML-a ili XML-a.Java kod može biti napisan kao komponenta (kao što je JavaBeans ) od strane programera, a web dizajner je može pozvati u svom HTML kodu koristeći specijalne JSP tagove. JSP nam na razne načine omgućava komunikaciju sa Java klasama, servletima, appletima i web serverima.
3.1. JSP Arhitektura Kao što smo već rekli, JSP je jednostavna datoteka sastavljena od HTML (ili XML) koda s JSP elementima (vrsta Java koda). Nakon što klijent zatraži JSP stranicu sa web servera, koja nikad prije nije bila pokrenuta, stranica se najprije prosljeđuje JSP mehanizmu koji stranicu prevodi u servlet, pokreće ju i sadržaj vraća klijentu. Postoji mogućnost uvida u generirani servlet kod.Na primjer, sa JRun-om, moguće je naći izvorni kod ( engl. source code ) za svoju JSP datoteku u jrun/jsm-default/services/jse/servlets/jsp direktoriju. Ovo je korisno želimo li debagirati JSP datoteku. Pogledamo li u izvornu datoteku javax.servlet.jsp paketa, naići ćemo na slijedeće klase:
Svaka klasa sadrži po tri metode:
Prve dvije metode definira sam autor JSP stranice, dok je treća prevedena verzija JSP stranice i za njeno stvaranje je odgovoran JSP mehanizam. Slika 3.1. JSP metode
3.2.Elementi JSP Elementi JSP stranice su :
3.2.1. JSP Direktive JSP direktive su funkcije koje JSP mehanizmu daju informacije o stranici koja slijedi.Sintaksa JSP direktive izgleda ovako: <%@ directive {attribute="value"}%> gdje direktiva može imati nekoliko (proizvoljnih) atributa. Moguće direktive u JSP 1.0 su:
Page direktive imaju niz atributa.Njihova specifikacija je proizvoljna, dok oni obavezni imaju predpostavljene vrijednosti.
Tablica 3.1. JSP atributi
3.2.2. JSP Deklaracije JSP deklaraciju možemo smatrati definicijom varijabli i metoda koje koristimo u izradi stranice.Da bi definirali deklaracijski blok, započinjemo sa <%!declaration>. <%! String var1 = "x"; int count = 0; private void incrementCount() { count++; } %>Nakon deklaracije svake varijable stavlja se točka zarez.
3.2.3. JSP Scriplets Scriplet-ima nazivamo bilo kakav valjani blok Java koda koji stoji izmeđi <% i %> tagova. Ovaj kod se smješta unutar generirane servlet-ove _jspService() metode.Kod definiran unutar scriptlet-a ima pristup bilo kojoj deklariranoj varijabli.Postoji i nekolicina implicitnih objekata, unutar servlet okoliša, dostupnih scriptlet-u.
Tablica 3.2. Implicitni objekti Slijedeći dio koda pokazuje kako doći do imenovanog parametra iz request objekta, i kako proslijediti string na izlazni niz stranice. <% String var1 = request.getParameter("lname"); out.println(var1); %>
3.2.4.JSP Izrazi JSP izrazi su pogodan alat za umetanje vrijednosti u HTML kod.Bilo što između <% i %> tagova bit će procijenjeno, pretvoreno u string i prikazano. The current price of item A100 is <%= request.getParameter("price") %>
JSP izrazi ne završavaju sa točka zarez.
4. Primjer JSP straniceU ovom primjeru, Java scripleti dobivaju korisničko ime ( engl. user name ) od HTTP request objekta, dobivaju datum i ispisuju korisničko ime i datum u čestitci. <HTML> <HEAD><TITLE>The Welcome User JSP</TITLE></HEAD> <BODY> <% String user=request.getParameter("user"); %> <H3>Welcome <%= (user==null) ? "" : user %>!</H3> <P><B> Today is <%= new java.util.Date() %>. Have a nice day! :-)</B></P> < B>Enter name:</B> <FORM METHOD=get> <INPUT TYPE="text" NAME="user" SIZE=15> <INPUT TYPE="submit" VALUE="Submit name"> </FORM> </BODY> </HTML> Ova stranica koristi HTML za upis korisničkog imena.Nakon što se pritisne "Submit button", poziva se GET metoda.Ulazni string se pridružuje parametru user i predaje se JSP preko HTTP request objekta.On omogućava metodu getParameter (String ParamName) za vraćanje vrijednosti parametra prema imenu. WelcomeUserJSP poziva tu metodu kako bi pročitao vrijednost parametra user. Vraćena vrijednost nije null, prikazana je poruka sa imenom korisnika, točan datum I vrijeme.Rezultat pozivanja WelcomeUserJSP prikazan je slikom 4.1.
Slika 4.1. WelcomeUserJSP
5. Prednosti JSP
|
||||||||||||||||||||||||||||||||||||||||||||||