JSP livscykel

Vad รคr JSP LifeCycle?
JSP Life Cycle definieras som รถversรคttning av JSP-sida till servlet, eftersom en JSP-sida mรฅste konverteras till servlet fรถrst fรถr att kunna bearbeta tjรคnstefรถrfrรฅgningarna. Livscykeln bรถrjar med skapandet av JSP och slutar med sรถnderfallet av det.
Olika faser av JSP-livscykeln
Nรคr webblรคsaren frรฅgar efter en JSP, kontrollerar JSP-motorn fรถrst om den behรถver kompilera sidan. Om JSP:n senast kompilerades eller den senaste รคndringen gรถrs i JSP, kompilerar JSP-motorn sidan.
Sammanstรคllningsprocessen fรถr JSP-sidan innefattar tre steg:
- Parsing av JSP
- Fรถrvandlar JSP till servlet
- Kompilerar servleten
JSP livscykeldiagram
JSP-livscykeln avbildas i diagrammet nedan.
Fรถljande steg fรถrklarar livscykeln fรถr JSP:
- รversรคttning av JSP-sida
- Sammanstรคllning av JSP-sida (Kompilering av JSP-sida till _jsp.java)
- Klassladdning (_jsp.java konverteras till klassfilen _jsp.class)
- Instantiering (Objekt med genererad servlet skapas)
- Initiering(
_jspinit()metod anropas av container) - Begรคran behandlas (
_jspservice()metoden anropas av behรฅllaren) - Fรถrstรถr (
_jspDestroy()metod som anropas av behรฅllaren)
Lรฅt oss ha en mer detaljerad sammanfattning av ovanstรฅende punkter:
1) รversรคttning av JSP-sidan:
A Java servlet-filen genereras frรฅn en JSP-kรคllfil. Detta รคr det fรถrsta steget i JSP:s livscykel. I รถversรคttningsfasen validerar behรฅllaren den syntaktiska korrektheten fรถr JSP-sidor och taggfiler.
- JSP-behรฅllaren tolkar standarddirektiven och -รฅtgรคrderna och de anpassade รฅtgรคrderna som refererar till taggbibliotek (de รคr alla en del av JSP-sidan och kommer att diskuteras i det senare avsnittet) som anvรคnds pรฅ den hรคr JSP-sidan.
- I ovanstรฅende bildbeskrivning รถversรคtts demo.jsp till demo_jsp.java i det fรถrsta steget
- Lรฅt oss ta ett exempel pรฅ "demo.jsp" som visas nedan:
Demo.jsp
<html> <head> <title>Demo JSP</title> </head> <% int demvar=0;%> <body> Count is: <% Out.println(demovar++); %> <body> </html>
Code Fรถrklaring till Demo.jsp
Code Linje 1: html starttagg
Code Linje 2: Huvudbricka
Code Rad 3โ4: Titeltagg dvs Demo JSP och avslutande huvudtagg
Code Rad 5โ6: Scriptlet-tagg dรคr variabeldemon initieras
Code Rad 7โ8: I body-taggen, en text som ska skrivas ut i utgรฅngen (Antalet รคr: )
Code Linje 9: Scriplet-tagg dรคr man fรถrsรถker skriva ut variabeln demovar med รถkat vรคrde
Code Rad 10โ11: Brรถdtext och HTML-taggar stรคngda
Demo JSP-sidan konverteras till demo_jsp-servlet i koden nedan.
Code fรถrklaring till Demo_jsp.java
Code Linje 1: Servlet-klassen demo_jsp utรถkar fรถrรคldraklassen HttpServlet
Code Rad 2โ3: ร sidosรคtter servicemetoden fรถr jsp dvs. _jspservice som har HttpServletRequest- och HttpServletResponse-objekt som sina parametrar
Code Linje 4: รppningsmetod
Code Linje 5: Kallar metoden getWriter() av svarsobjektet som ska hรคmtas Skriv utWriterobjekt (skriver ut formaterad representation av objekt till textutdatastrรถmmen)
Code Linje 6: Anropar setContentType-metoden fรถr svarsobjektet fรถr att stรคlla in innehรฅllstypen
Code Linje 7: Anvรคnder sig av write() tryckmetodWriter objekt som fรถrsรถker analysera html
Code Linje 8: Initierar demovar-variabeln till 0
Code Linje 9: Ringer write() tryckmetodWriter objekt fรถr att analysera texten
Code Linje 10: Ringer print() tryckmetodWriter objekt fรถr att รถka variabeln demovar frรฅn 0+1=1. Dรคrfรถr blir utdata 1
Code Linje 11: Anvรคnder sig av write() tryckmetodWriter objekt som fรถrsรถker analysera html
Produktion:
- Hรคr kan du se att i skรคrmdumpen รคr utgรฅngen 1 eftersom demvar initieras till 0 och sedan inkrementeras till 0+1=1
I exemplet ovan,
- demo.jsp, รคr en JSP dรคr en variabel initieras och inkrementeras. Denna JSP konverteras till servleten (demo_jsp.class ) dรคr JSP-motorn laddar JSP-sidan och konverterar till servletinnehรฅll.
- Nรคr konverteringen sker konverteras all malltext till
println()uttalanden och allt JSP-element konverteras till Java koda.
Sรฅ hรคr รถversรคtts en enkel JSP-sida till en servletklass.
2) Sammanstรคllning av JSP-sidan
- Den genererade javaservletfilen kompileras till javaservletklass
- รversรคttningen av Java-kรคllsidan till dess implementeringsklass kan ske nรคr som helst mellan distributionen av JSP-sidan i behรฅllaren och bearbetningen av JSP-sidan.
- I ovanstรฅende bildbeskrivning kompileras demo_jsp.java till en klassfil demo_jsp.class
3) Klassladdning
- Servlet-klass som har laddats frรฅn JSP-kรคllan laddas nu in i behรฅllaren
4) Instantiering
- I detta steg genereras objektet dvs klassens instans.
- Behรฅllaren hanterar en eller flera instanser av den hรคr klassen i svaret pรฅ fรถrfrรฅgningar och andra hรคndelser. Vanligtvis byggs en JSP-behรฅllare med en servlet-behรฅllare. En JSP-behรฅllare รคr en fรถrlรคngning av servlet-behรฅllare eftersom bรฅde behรฅllaren stรถder JSP och servlet.
- Ett JSPPage-grรคnssnitt som tillhandahรฅlls av container tillhandahรฅller
init()ochdestroy()metoder. - Det finns ett grรคnssnitt HttpJSPPage som betjรคnar HTTP-fรถrfrรฅgningar, och det innehรฅller รคven tjรคnstemetoden.
5) Initiering
public void jspInit()
{
//initializing the code
}
_jspinit()metod kommer att initiera servletinstansen som genererades frรฅn JSP och kommer att anropas av behรฅllaren i denna fas.- Nรคr instansen har skapats kommer init-metoden att anropas direkt efter det
- Den anropas bara en gรฅng under en JSP-livscykel, metoden fรถr initiering deklareras enligt ovan
6) Behandling av begรคran
void _jspservice(HttpServletRequest request HttpServletResponse response)
{
//handling all request and responses
}
_jspservice()metoden anropas av behรฅllaren fรถr alla fรถrfrรฅgningar som vรคcks av JSP-sidan under dess livscykel- Fรถr denna fas mรฅste den gรฅ igenom alla ovanstรฅende faser och dรฅ kan endast servicemetoden anropas.
- Den skickar fรถrfrรฅgnings- och svarsobjekt
- Denna metod kan inte รฅsidosรคttas
- Metoden visas ovan: Den รคr ansvarig fรถr att generera alla HTTP-metoder dvs GET, POST, etc.
7) Fรถrstรถr
public void _jspdestroy()
{
//all clean up code
}
_jspdestroy()metoden anropas ocksรฅ av behรฅllaren- Den hรคr metoden anropas nรคr behรฅllaren beslutar att den inte lรคngre behรถver servletinstansen fรถr att betjรคna begรคranden.
- Nรคr anropet att fรถrstรถra metoden gรถrs, รคr servleten redo fรถr en sophรคmtning
- Detta รคr slutet pรฅ livscykeln.
- Vi kan รฅsidosรคtta
jspdestroy()metod nรคr vi utfรถr nรฅgon rensning som att slรคppa databasanslutningar eller stรคnga รถppna filer.



