JSP livscykel

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.

JSP livscykel

Fรถljande steg fรถrklarar livscykeln fรถr JSP:

  1. ร–versรคttning av JSP-sida
  2. Sammanstรคllning av JSP-sida (Kompilering av JSP-sida till _jsp.java)
  3. Klassladdning (_jsp.java konverteras till klassfilen _jsp.class)
  4. Instantiering (Objekt med genererad servlet skapas)
  5. Initiering(_jspinit() metod anropas av container)
  6. Begรคran behandlas (_jspservice() metoden anropas av behรฅllaren)
  7. 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.

JSP livscykel

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:

JSP livscykel

  • 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() och destroy() 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.

Sammanfatta detta inlรคgg med: