Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius Jūs galite padėti Vikipedijai pridėdami tinkamas išna
JavaServer Pages

Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius. Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas 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[reikalingas šaltinis] 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[reikalingas šaltinis]):
Č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ų.
Autorius: www.NiNa.Az
Išleidimo data:
vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu, mobilusis, porn, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, pornografija, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris, Informacija apie JavaServer Pages, Kas yra JavaServer Pages? Ką reiškia JavaServer Pages?
Siam straipsniui ar jo daliai truksta isnasu į patikimus saltinius Jus galite padeti Vikipedijai pridedami tinkamas isnasas su saltiniais JavaServer Pages technologija leidzianti dinamiskai generuoti HTML XML ar kito tipo puslapius Si technologija suteikia galimybe į statinį puslapį įterpti Java koda ir kita dinaminį turinį JSP puslapyje kaitaliojasi įprastine HTML kalba parasyti fragmentai bei java kalba parasytos sekcijos J2EE serveris vykdo puslapyje esantį java koda kuris is anksto specialia JSP direktyva deklaruotiems kintamiesiems priskiria reikiamas reiksmes Kita JSP direktyva sias reiksmes galima reikiamoje vietoje įterpti į dokumenta Gerai parasytoje sistemoje JSP puslapio kodas atsakingas tik uz paties dokumento generavima Saveika su duomenu bazemis sudetingesni skaiciavimo algoritmai sprendimu priemimas bei kiti panasus algoritmai turi buti koduojami aukstesniame EJB lygyje JSP puslapis turi kviesti EJB modulius Paprastas reikalingas saltinis pavyzdys lt html gt lt body gt lt String intarpas gt lt p gt Cia paprastas HTML tekstas lt p gt lt O cia java kodas int s 0 for int i 1 i lt 10 i s i intarpas Skaiciu nuo vieno iki devyniu suma s gt lt pre gt lt p gt Java kodo rezultatas lt p gt lt b gt lt i gt lt u gt lt intarpas gt lt b gt lt i gt lt u gt lt body gt lt html gt Puslapis narsykeje atrodys taip tikrinta su JOnAS reikalingas saltinis Cia paprastas HTML tekstas Java kodo rezultatas Skaiciu nuo vieno iki devyniu suma 45Pavyzdys su cikluJSP nesunku generuoti ir is anksto nezinomo ilgio sarasa lentele ar kita panasu dokumento elementa Siuo atveju programuojamas java ciklas su jame esancia HTML sekcija kuri į generuojama dokumenta keliskart įterpiama pakartotinai lt ul gt lt for int i 0 i lt 3 i gt lt li gt lt i gt lt li gt lt gt lt ul gt Si seka generuos triju eiluciu sarasa 123ParametraiJSP java kodas gali pasiekti keleta is anksto apibreztu kintamuju is kuriu svarbiausias yra request angl uzklausa Is request objekto galima suzinoti kokie buvo puslapio kvietimo parametrai jei puslapis generuojamas kaip vartotojo atsakas į uzpildyta HTML forma bei kokie yra anksciau toje narsykleje pasideti slapukai Slapukams padeti naudojamas kitas is anksto apibreztas kintamasis response Slapukai dazniausiai reikalingi įsiregistravimui į slaptazodziu apsaugota sistema JSP puslapio dalysJSP puslapis paprastai turi tokias dalis statiniai duomenys pavyzdziui HTML JSP direktyvos directives pavyzdziui include direktyva JSP skripto elementai ir kintamieji JSP veiksmai papildomi custom tag aiStatiniai duomenys Statiniai duomenys yra tiesiogiai perrasomi į HTTP atsakyma Taigi paprastas HTML failas yra suprantamas kaip korektiskas JavaServer puslapis be jokiu specifiniu JSP elementu Tokiu atveju į HTTP atsakyma visa laika butu siuciama ta pati informacija Bet JSP tikslas yra papildyti puslapį dinaminiu turiniu todel vien tik paprasto HTML pateikimas JSP kompiliatoriui retai kada yra prasmingas JSP direktyvos JSP direktyvos kontroliuoja kaip JSP kompiliatorius generuoja servleta Zemiau pateiktas galimu direktyvu sarasas include Include direktyva informuoja JSP kompiliatoriu įterpti angl paste pilna faila į redaguojama Įterpima galima įsivaizduoti kaip veiksma įterpti toje vietoje kur įrasyta direktyva Include direktyva funkcionuoja panasiai kaip include C preprocesoriuje lt include file betkoksfailas jspf gt page Yra keletas page direktyvos variantu import jei norima į galutinį faila įterpti java import sakinįcontentType nustato generuojamo failo turinio tipa Reiktu naudoti jei generuojamas failas ne HTML arba character set nera standartinis errorPage nurodo puslapį kuris bus parodomas įvykus generavimo klaidai isErrorPage jeigu nustatyta true reiksme sis failas laikomas klaidos puslapiu isThreadSafe nurodo ar servletas kuris bus sugeneruotas yra saugus atzvilgiu Pavyzdziai lt page import java util gt lt page contentType text html gt lt page isErrorPage false gt lt page isThreadSafe true gt Tik import direktyva gali buti naudojama daugiau nei viena karta tame paciame JSP puslapyje taglib Taglib direktyva nurodo kad bus naudojama JSP angl tag biblioteka Direktyva reikalauja kad butu nurodytas prefiksas prefix ir tag o biblioteka aprasantis lt taglib prefix myprefix uri taglib mytag tld gt JSP skripto elementai ir kintamieji Standartiniai skripto kintamieji Visalaik prieinami skripte yra sie kintamieji out JSPWriter naudojamas perduoti duomenis į HTTP atsakymo srauta stream page Pats servletas pageContext PageContext objekto instanc as lt laikantis su visu puslapiu susijusia informacija Tokiu budu keliems JSP gali buti perduodamas tas pats HTML puslapis request objektas response objektas session objektas kuris gali buti naudojamas sekti vartotojo sesijai tarp atskiru puslapiu