JSP livssyklus

jsp livssyklus

Hva er JSP LifeCycle?

JSP-livssyklus er definert som oversettelse av JSP-side til servlet, da en JSP-side må konverteres til servlet først for å behandle tjenesteforespørslene. Livssyklusen starter med opprettelsen av JSP og slutter med oppløsningen av den.

Ulike faser av JSP livssyklus

Når nettleseren ber om en JSP, sjekker JSP-motoren først om den trenger å kompilere siden. Hvis JSP-en sist ble kompilert eller den nylige modifikasjonen er gjort i JSP, kompilerer JSP-motoren siden.

Kompileringsprosessen for JSP-siden involverer tre trinn:

  • Parsing av JSP
  • Gjør om JSP til servlet
  • Kompilere servleten

JSP livssyklusdiagram

JSP Lifecycle er avbildet i diagrammet nedenfor.

JSP livssyklus

Følgende trinn forklarer livssyklusen til JSP:

  1. Oversettelse av JSP-side
  2. Samling av JSP-side (Samstilling av JSP-side til _jsp.java)
  3. Klasselasting (_jsp.java konverteres til klassefilen _jsp.class)
  4. Instantiering (objekt av generert servlet er opprettet)
  5. Initialisering(_jspinit() metoden påkalles av container)
  6. Forespørselsbehandling (_jspservice() metoden påkalles av beholderen)
  7. Ødelegge (_jspDestroy() metode som påkalles av beholderen)

La oss ha en mer detaljert oppsummering av punktene ovenfor:

1) Oversettelse av JSP-siden:

A Java servlet-filen er generert fra en JSP-kildefil. Dette er det første trinnet i JSPs livssyklus. I oversettelsesfasen validerer container den syntaktiske korrektheten til JSP-side- og tagfiler.

  • JSP-beholderen tolker standarddirektivene og handlingene, og de tilpassede handlingene som refererer til tag-biblioteker (de er alle en del av JSP-siden og vil bli diskutert i den senere delen) som brukes på denne JSP-siden.
  • I bildebeskrivelsen ovenfor er demo.jsp oversatt til demo_jsp.java i det første trinnet
  • La oss ta et eksempel på "demo.jsp" som vist nedenfor:

Demo.jsp

<html>
<head>
<title>Demo JSP</title>
</head>
<%
int demvar=0;%>
<body>
Count is:
<% Out.println(demovar++); %>
<body>
</html>

Kodeforklaring for Demo.jsp

Kodelinje 1: html starttag

Kodelinje 2: Hodemerke

Kodelinje 3 – 4: Title Tag dvs. Demo JSP og avsluttende head tag

Kodelinje 5 – 6: Scriptlet-tag der initialisering av variabeldemoen

Kodelinje 7 – 8: I body-tag, en tekst som skal skrives ut i utdataene (Antallet er: )

Kodelinje 9: Scriplet-tag der prøver å skrive ut variabelen demovar med økt verdi

Kodelinje 10 – 11: Brødtekst og HTML-tagger lukket

Demo JSP-siden konverteres til demo_jsp-servlet i koden nedenfor.

JSP livssyklus

Kodeforklaring for Demo_jsp.java

Kodelinje 1: Servlet-klassen demo_jsp utvider foreldreklassen HttpServlet

Kodelinje 2 – 3: Overstyrer tjenestemetoden til jsp, dvs. _jspservice som har HttpServletRequest- og HttpServletResponse-objekter som parametere

Kodelinje 4: Åpningsmetode

Kodelinje 5: Kaller metoden getWriter() av responsobjekt for å hente PrintWriterobject (skriver ut formatert representasjon av objekter til tekstutdatastrøm)

Kodelinje 6: Kaller opp setContentType-metoden for responsobjektet for å angi innholdstypen

Kodelinje 7: Ved hjelp av write() metoden til PrintWriter-objektet som prøver å analysere html

Kodelinje 8: Initialiserer demovar-variabelen til 0

Kodelinje 9: Ringer write() metoden til PrintWriter-objektet for å analysere teksten

Kodelinje 10: Ringer print() metoden til PrintWriter-objektet for å øke variabelen demovar fra 0+1=1. Derfor vil utgangen være 1

Kodelinje 11: Ved hjelp av write() metoden til PrintWriter-objektet som prøver å analysere html

Utgang:

JSP livssyklus

  • Her kan du se at i skjermbildet er output 1 fordi demvar initialiseres til 0 og deretter økes til 0+1=1

I eksemplet ovenfor,

  • demo.jsp, er en JSP der én variabel initialiseres og økes. Denne JSP-en konverteres til servleten (demo_jsp.class ) der JSP-motoren laster JSP-siden og konverterer til servletinnhold.
  • Når konverteringen skjer, konverteres all maltekst til println() uttalelser og alt JSP-elementer blir konvertert til Java kode.

Dette er hvordan en enkel JSP-side blir oversatt til en servlet-klasse.

2) Kompilering av JSP-siden

  • Den genererte java servlet-filen er kompilert i java servlet-klassen
  • Oversettelsen av java-kildesiden til implementeringsklassen kan skje når som helst mellom distribusjonen av JSP-siden til beholderen og behandlingen av JSP-siden.
  • I bildebeskrivelsen ovenfor er demo_jsp.java kompilert til en klassefil demo_jsp.class

3) Klasselasting

  • Servlet-klassen som har blitt lastet fra JSP-kilden er nå lastet inn i beholderen

4) Instantiering

  • I dette trinnet genereres objektet, dvs. forekomsten av klassen.
  • Beholderen administrerer én eller flere forekomster av denne klassen i svaret på forespørsler og andre hendelser. Vanligvis bygges en JSP-beholder ved hjelp av en servletbeholder. En JSP-beholder er en utvidelse av servletbeholder, da både beholderen støtter JSP og servlet.
  • Et JSPPage-grensesnitt som leveres av container gir init() og destroy() metoder.
  • Det er et grensesnitt HttpJSPPage som betjener HTTP-forespørsler, og det inneholder også tjenestemetoden.

5) Initialisering

public void jspInit()
{
	//initializing the code
}
  • _jspinit() metoden vil starte servlet-forekomsten som ble generert fra JSP og vil bli påkalt av beholderen i denne fasen.
  • Når forekomsten er opprettet, vil init-metoden bli påkalt umiddelbart etter det
  • Den kalles bare én gang i løpet av en JSP-livssyklus, metoden for initialisering er deklarert som vist ovenfor

6) Behandling av forespørsel

void _jspservice(HttpServletRequest request HttpServletResponse response)
{
	//handling all request and responses
}
  • _jspservice() metoden påkalles av containeren for alle forespørslene som reises av JSP-siden i løpet av livssyklusen
  • For denne fasen må den gå gjennom alle de ovennevnte fasene, og da kan bare tjenestemetoden påkalles.
  • Den passerer forespørsels- og svarobjekter
  • Denne metoden kan ikke overstyres
  • Metoden er vist ovenfor: Den er ansvarlig for å generere alle HTTP-metoder, dvs. GET, POST, etc.

7) Ødelegg

public void _jspdestroy()
{
            //all clean up code
}
  • _jspdestroy() metoden påkalles også av beholderen
  • Denne metoden kalles når containeren bestemmer at den ikke lenger trenger servlet-forekomsten for å betjene forespørsler.
  • Når oppfordringen til å ødelegge metoden er gjort, er servleten klar for en søppelsamling
  • Dette er slutten på livssyklusen.
  • Vi kan overstyre jspdestroy() metode når vi utfører opprydding, for eksempel frigjøring av databasetilkoblinger eller lukking av åpne filer.