JSP elutsükkel

Mis on JSP elutsükkel?
JSP elutsükkel on defineeritud kui JSP lehe tõlkimine servletiks, kuna teenusepäringute töötlemiseks tuleb JSP leht esmalt servletiks teisendada. Elutsükkel algab JSP loomisega ja lõpeb selle lagunemisega.
JSP elutsükli erinevad faasid
Kui brauser küsib JSP-d, kontrollib JSP-mootor esmalt, kas tal on vaja leht kompileerida. Kui JSP on viimati kompileeritud või hiljutine muudatus on tehtud JSP-s, kompileerib JSP-mootor lehe.
JSP lehe kompileerimisprotsess koosneb kolmest etapist:
- JSP sõelumine
- JSP muutmine servletiks
- Servleti koostamine
JSP elutsükli diagramm
JSP elutsükkel on kujutatud alloleval diagrammil.
Järgmised sammud selgitavad JSP elutsüklit.
- JSP lehe tõlge
- JSP lehe koostamine (JSP lehe kompileerimine failiks _jsp.java)
- Klassi laadimine (_jsp.java teisendatakse klassifailiks _jsp.class)
- Eksperimenteerimine (loodud servleti objekt luuakse)
- Initsialiseerimine (
_jspinit()meetodi käivitab konteiner) - Taotluse töötlemine (
_jspservice()konteiner kutsub meetodi) - Hävita (
_jspDestroy()konteineri käivitatud meetod)
Teeme ülaltoodud punktide kohta üksikasjalikuma kokkuvõtte:
1) JSP lehe tõlge:
A Java servleti fail genereeritakse JSP lähtefailist. See on JSP elutsükli esimene samm. Tõlkefaasis kontrollib konteiner JSP-lehe ja sildifailide süntaktilist õigsust.
- JSP-konteiner tõlgendab sellel JSP-lehel kasutatavaid standardseid direktiive ja toiminguid ning märgenditeekidele viitavaid kohandatud toiminguid (need on kõik JSP-lehe osad ja neid käsitletakse hilisemas jaotises).
- Ülaltoodud piltkirjelduses on demo.jsp esimeses etapis tõlgitud demo_jsp.java
- Võtame näite failist „demo.jsp”, nagu on näidatud allpool:
Demo.jsp
<html> <head> <title>Demo JSP</title> </head> <% int demvar=0;%> <body> Count is: <% Out.println(demovar++); %> <body> </html>
Code Demo.jsp selgitus
Code Line 1: html algusmärgend
Code Line 2: Peasilt
Code Rida 3–4: Pealkirja silt, st Demo JSP ja sulgemissilt
Code Rida 5–6: Scriptleti silt, kus muutuja demo lähtestamine
Code Rida 7–8: kehasildis väljundisse prinditav tekst (Arv on: )
Code Rida 9: Scripleti silt, kuhu proovitakse printida muutujat demovar suurendatud väärtusega
Code Rida 10–11: Keha- ja HTML-sildid on suletud
Demo JSP leht teisendatakse allolevas koodis demo_jsp servletiks.
Code Demo_jsp.java selgitus
Code Line 1: Servleti klass demo_jsp laiendab vanemklassi HttpServlet
Code Rida 2–3: jsp teenindusmeetodi alistamine, st _jspservice, mille parameetriteks on objektid HttpServletRequest ja HttpServletResponse
Code Line 4: Avamisviis
Code Line 5: meetodi kutsumine getWriter() vastuseobjekti kohta, et saada PrintWriterobjekt (prindib objektide vormindatud esituse tekstiväljundvoogu)
Code Line 6: vastuseobjekti meetodi setContentType kutsumine sisutüübi määramiseks
Code Line 7: Kasutamine write() Printimise meetodWriter objekt, mis üritab HTML-i parsida
Code Line 8: demovari muutuja lähtestamine väärtuseks 0
Code Line 9: Helistan write() Printimise meetodWriter objekt teksti parsimiseks
Code Line 10: Helistan print() Printimise meetodWriter objekti, et suurendada muutuja demovar väärtust 0+1=1-lt. Seega on väljund 1
Code Line 11: Kasutamine write() Printimise meetodWriter objekt, mis üritab HTML-i parsida
Väljund:
- Siin näete, et ekraanipildil on väljund 1, kuna demvar lähtestatakse väärtuseks 0 ja seejärel suurendatakse väärtuseks 0+1=1
Ülaltoodud näites
- demo.jsp on JSP, kus üks muutuja initsialiseeritakse ja seda suurendatakse. See JSP teisendatakse servletiks (demo_jsp.class), kus JSP-mootor laadib JSP-lehe ja teisendab servleti sisuks.
- Kui teisendamine toimub, teisendatakse kogu malli tekst
println()avaldused ja kõik JSP elemendid teisendatakse Java kood.
Nii tõlgitakse lihtne JSP leht servletiklassiks.
2) JSP lehe koostamine
- Loodud java servletifail kompileeritakse java servleti klassi
- Java lähtelehe tõlkimine selle juurutusklassi võib toimuda igal ajal JSP-lehe konteinerisse juurutamise ja JSP-lehe töötlemise vahel.
- Ülaltoodud piltkirjelduses on demo_jsp.java kompileeritud klassifailiks demo_jsp.class
3) Klassi laadimine
- JSP-allikast laaditud Servleti klass laaditakse nüüd konteinerisse
4) Instantseerimine
- Selles etapis genereeritakse objekt, st klassi eksemplar.
- Konteiner haldab selle klassi üht või mitut eksemplari vastusena päringutele ja muudele sündmustele. Tavaliselt koostatakse JSP-konteiner servleti konteineri abil. JSP konteiner on servleti konteineri laiendus, kuna nii konteiner toetab JSP-d kui ka servletit.
- JSPPage'i liides, mida pakub konteiner
init()jadestroy()meetodid. - Seal on liides HttpJSPPage, mis teenindab HTTP-päringuid ja sisaldab ka teenindusmeetodit.
5) Initsialiseerimine
public void jspInit()
{
//initializing the code
}
_jspinit()meetod käivitab servleti eksemplari, mis loodi JSP-st ja selles etapis kutsub konteiner selle välja.- Kui eksemplar on loodud, käivitatakse init-meetod kohe pärast seda
- Seda kutsutakse JSP elutsükli jooksul ainult üks kord, lähtestamise meetod deklareeritakse ülaltoodud viisil
6) Taotluse töötlemine
void _jspservice(HttpServletRequest request HttpServletResponse response)
{
//handling all request and responses
}
_jspservice()konteiner kasutab meetodit kõigi JSP-lehe poolt selle elutsükli jooksul esitatud päringute jaoks- Selle faasi jaoks peab see läbima kõik ülaltoodud etapid ja seejärel saab kasutada ainult teenindusmeetodit.
- See edastab päringu- ja vastuseobjekte
- Seda meetodit ei saa tühistada
- Meetod on näidatud ülal: see vastutab kõigi HTTP-meetodite, st GET, POST jne genereerimise eest.
7) hävitada
public void _jspdestroy()
{
//all clean up code
}
_jspdestroy()meetodit kasutab ka konteiner- Seda meetodit kutsutakse välja, kui konteiner otsustab, et ta ei vaja enam servleti eksemplari taotluste teenindamiseks.
- Kui kutsutakse hävitamise meetodit, on servlet valmis prügi kogumiseks
- See on elutsükli lõpp.
- Saame alistada
jspdestroy()meetodit, kui teeme puhastamise, näiteks andmebaasiühenduste vabastamise või avatud failide sulgemise.



