Početna stranicaHTML + CSSHTML + JavaScript/PHPHTML + obrada slikaO meni ...
 

Java Server Pages

 

 

1. Uvod

Glavna 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 Tehnologija

Kako 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 Pages

Java 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:

  • JSPPage
  • HttpJspPage

Svaka klasa sadrži po tri metode:

  • jspInit()
  • jspDestroy()
  • _jspService (HttpServletRequest request, HttpServletResponse response)

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 :

  • Direktive - one stranici osiguravaju opće informacije.Na primjer, važne napomene, stranice s uputama u slučaju pogreške.
  • Deklaracije - za deklaraciju metoda i varijabli
  • Scriplets - blok Java koda, uključen u stranicu
  • Izrazi

 

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 - informacije za stranicu
  • Include - datoteke koje se uključuju
  • Taglib - URI za popis tagova koje koristim u stranici

Page direktive imaju niz atributa.Njihova specifikacija je proizvoljna, dok oni obavezni imaju predpostavljene vrijednosti.

 

Atributi i moguće
vrijednosti

Opis

language="Java"

Varijabla language ( hrv. jezik ) govori serveru kojim programskim jezikom je pisana datoteka

extends="package.class"

varijabla extends definira tzv. parent ( engl. roditelj ) klasu

import="package.*,
package.class"

Varijabla import je slična prvom dijelu bilo kojeg Java programa.Kao takvu, treba ju smjestiti na početak JSP datoteke.Vrijednost takve varijable su popis paketa i klasa koje želimo uvesti

session="true|false"

Predpostavljena vrijednost ( engl. default value ) ove varijable je true.

buffer="none|8kb|sizekb"

Određuje je li izlazni niz spremljen. Predpostavljena vrijednost spremnika ( engl. buffer ) je 8kb. Koristi se skupa sa autoFlush

autoFlush="true|false"

Ako je postavljen u true , prazni spremnik ako je pun

 

 

isThreadSafe="true|false"

Predpostavljena vrijednost ( engl. default value ) ove varijable je true. Kao takva govori JSP mehanizmu da se višestruki zahtjevi klijenta mogu istovremeno ispuniti.

info="text"

Informacija o stranici kojoj možemo

Pristupiti preko servleta. getServletInfo() metoda

errorPage="pathToErrorPage"

Daje "put" do JSP stranice koja se bavi iznimkama.Ta JSP stranica ima ovu varijablu postavljenu na true.

isErrorPage="true|false"

Označava stranicu, kao stranicu s greškom

contentType="text/html; charset=ISO-8859-1"

Ova informacija se stavlja u početnom dijelu datoteke, prije nogo se pojavi ne-latinski znak.

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.

 

Implicitni objekti

Opis

request

Zahtijev klijenta. Ovo je obično podklasa HttpServletRequest .Sadrži listu parametara.

response

Odgovor JSP stranice, podklasa HttpServletResponse .

pageContext

Page atributi i implicitni objekti (ono što čini okolinu servera u kojoj JSP radi) moraju biti dostupni preko uniformnog API ( Application Program Interfce ), da bi JSP mehanizam mogao prevoditi stranice. Svaki server ima specifičnu implementaciju atributa I objekata.

session

HTTP session objekt povezan s odgovorom.

application

Servlet kontekst vraćen pozivom getServletConfig().getContext()

out

Objekt koji predstavlja izlazni niz

config

ServletConfig object za stranicu.

page

Način da stranica uputi sama na sebe

exception

Podklasa koja se prenosi na errorpage URL

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 stranice

U 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

  • JSP vs. Active Server Pages (ASP). ASP je slična tehnologija kao i JSP, ali je od drugog proizvođača.JSP proizvodi Sun, dok ASP proizvodi Microsoft.Prednost JSP je dvostruka.Prvo, dinamički dio je pisan u Javi, a ne u Visual Basicu ili nekom drugom programskom jeziku, što ga čini boljim alatom i jednostavnijim za upotrebu.Drugo, prenosiv je na operativne sustave i Web servere drugih prozvođača.
  • JSP vs. Pure Servlets. JSP, u principu, ne daje nikave dodatne mogućnosti u odnosu na servlet.Ipak, praktičnije je pisati (i mijenjati!) običan HTML nego imati gomilu println naredbi koje generiraju HTML. Osim toga, odvajajući izgled stranice od sadržaja daje mogućnost podijele rada.Stručnak za dizajniranje web stranica bavi se HTML-om, ostavljajući mjesta da servlet programeri ubace dinamički sadržaj.
  • JSP vs. Java Script. JavaScript generira HTML dinamički na klijetskoj strani.S obzirom na to da se program izvodi na klijentu, JavaScript nema pristup resursima poslužiteljske strane kao što su baza podataka, katalozi.
  • JSP vs. Static HTML. Obični HTML, naravno, ne može sadržavati dinamičke sadržaje.

 


www.heinekeninternational.com