Šiam straipsniui ar jo daliai . Jūs galite padėti Vikipedijai pridėdami su šaltiniais. |
JavaServer Pages – technologija, leidžianti dinamiškai generuoti HTML, XML, ar kito tipo puslapius. Ši technologija suteikia galimybę į statinį puslapį įterpti Java kodą ir kitą dinaminį turinį.
JSP puslapyje kaitaliojasi įprastine HTML kalba parašyti fragmentai bei java kalba parašytos sekcijos. J2EE serveris vykdo puslapyje esantį java kodą kuris iš anksto specialia JSP direktyva deklaruotiems kintamiesiems priskiria reikiamas reikšmes. Kita JSP direktyva šias reikšmes galima reikiamoje vietoje įterpti į dokumentą.
Gerai parašytoje sistemoje JSP puslapio kodas atsakingas tik už paties dokumento generavimą. Sąveika su duomenų bazėmis, sudėtingesni skaičiavimo algoritmai, sprendimų priėmimas bei kiti panašūs algoritmai turi būti koduojami aukštesniame, EJB lygyje (JSP puslapis turi kviesti EJB modulius).
Paprastas pavyzdys
<html> <body> <%!String intarpas; %> <p>Cia paprastas HTML tekstas</p> <% // O čia java kodas: int s = 0; for (int i = 1; i < 10; i++) s += i; intarpas = "Skaiciu nuo vieno iki devyniu suma: "+s; %> </pre> <p>Java kodo rezultatas:</p> <b><i><u> <%= intarpas %></b></i></u> </body> </html>
Puslapis naršykėje atrodys taip (tikrinta su JOnAS):
Čia paprastas HTML tekstas
Java kodo rezultatas:
Skaičių nuo vieno iki devynių suma: 45
Pavyzdys su ciklu
JSP nesunku generuoti ir iš anksto nežinomo ilgio sąrašą, lentelę ar kitą panašų dokumento elementą. Šiuo atveju programuojamas java ciklas su jame esančia HTML sekcija, kuri į generuojamą dokumentą keliskart įterpiama pakartotinai:
<ul> <% for (int i = 0; i <3; i++) { %> <li> <%=i %> </li> <% } %> </ul%>
Ši seka generuos trijų eilučių sąrašą:
- 1
- 2
- 3
Parametrai
JSP java kodas gali pasiekti keletą iš anksto apibrėžtų kintamųjų, iš kurių svarbiausias yra request (angl užklausa). Iš request objekto galima sužinoti, kokie buvo puslapio kvietimo parametrai (jei puslapis generuojamas kaip vartotojo atsakas į užpildyta HTML formą) bei kokie yra anksčiau toje naršyklėje pasidėti slapukai. Slapukams padėti naudojamas kitas iš anksto apibrėžtas kintamasis, response. Slapukai dažniausiai reikalingi įsiregistravimui į slaptažodžiu apsaugotą sistemą.
JSP puslapio dalys
JSP puslapis paprastai turi tokias dalis:
- statiniai duomenys, pavyzdžiui, HTML
- JSP direktyvos (directives), pavyzdžiui, „include“ direktyva
- JSP skripto elementai ir kintamieji
- JSP veiksmai
- papildomi (custom) tag'ai
Statiniai duomenys
Statiniai duomenys yra tiesiogiai perrašomi į HTTP atsakymą. Taigi paprastas HTML failas yra suprantamas kaip korektiškas JavaServer puslapis be jokių specifinių JSP elementų. Tokiu atveju į HTTP atsakymą visą laiką būtų siučiama ta pati informacija. Bet JSP tikslas yra papildyti puslapį dinaminiu turiniu, todėl vien tik paprasto HTML pateikimas JSP kompiliatoriui retai kada yra prasmingas.
JSP direktyvos
JSP direktyvos kontroliuoja kaip JSP kompiliatorius generuoja servletą. Žemiau pateiktas galimų direktyvų sąrašas:
- include – Include direktyva informuoja JSP kompiliatorių įterpti (angl. paste) pilną failą į redaguojamą. Įterpimą galima įsivaizduoti kaip veiksmą „įterpti“ toje vietoje kur įrašyta direktyva. Include direktyva funkcionuoja panašiai kaip include C preprocesoriuje.
<%@ include file="betkoksfailas.jspf" %>
- page – Yra keletas page direktyvos variantų:
import | jei norima į galutinį failą įterpti „java import“ sakinį |
contentType | nustato generuojamo failo turinio tipą. Reiktų naudoti, jei generuojamas failas ne HTML arba „character set“ nėra standartinis . |
errorPage | nurodo puslapį kuris bus parodomas įvykus generavimo klaidai. |
isErrorPage | jeigu nustatyta „true“ reikšmė, šis failas laikomas klaidos puslapiu. |
isThreadSafe | nurodo ar servletas, kuris bus sugeneruotas, yra saugus atžvilgiu. |
Pavyzdžiai:
<%@ page import="java.util.*" %> <%@ page contentType="text/html" %> <%@ page isErrorPage=false %> <%@ page isThreadSafe=true %>
Tik import direktyva gali būti naudojama daugiau nei vieną kartą tame pačiame JSP puslapyje.
- taglib – Taglib direktyva nurodo kad bus naudojama JSP (angl. tag) biblioteka. Direktyva reikalauja kad būtų nurodytas prefiksas (prefix) ir tag'o biblioteką aprašantis .
<%@ taglib prefix="myprefix" uri="taglib/mytag.tld" %>
JSP skripto elementai ir kintamieji
Standartiniai skripto kintamieji
Visąlaik prieinami skripte yra šie kintamieji:
- out – JSPWriter, naudojamas perduoti duomenis į HTTP atsakymo srautą (stream).
- page – Pats servletas.
- pageContext – PageContext objekto instanc'as (?lt) laikantis su visu puslapiu susijusią informaciją. Tokiu būdu keliems JSP gali būti perduodamas tas pats HTML puslapis.
- request – objektas.
- response – objektas.
- session – objektas kuris gali būti naudojamas sekti vartotojo sesijai tarp atskirų puslapių.
vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu , mobilusis, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris