Introduksjon til JSP Livssyklus

I denne artikkelen skal vi diskutere JSP livssyklus. Java-serversider, en serversideteknologi som tar ansvaret for behandlingen på serveren.

1. Hvor trenger vi JSP?

  • Vel, hvis du er i nettbasert utvikling og det vi ser bygger dynamiske nettsteder, så spiller JSP-er en viktig rolle ettersom gjengivelsen gjøres dynamisk.
  • JSP-er fungerer bare på underliggende HTML, kroppen på en side består bare av grunnleggende HTML-markeringer, men det er visse plassholdere, parametere, listeverdier, iteratorer, det er bare mulig med JSP-er, HTML gir deg statisk visning bare noen beslutninger som skal gjøres på kjøretid trenger en dynamisk håndtering, slik at JSPs fremstår som en løsning der.
  • JSP muliggjør separasjon av innholdsgenerering og innholdspresentasjon

La oss ta et grunnleggende eksempel som vil gi deg en ide om denne dynamiske gjengivelsen.



Innholdet eller logikken på innsiden gjengis dynamisk og sendes bare av back-end.

La oss nå gå videre og forstå livssyklusen til JSP-er, og hvordan de faktisk blir gjengitt i frontend for å gi en kunde lesbar eller klar opplevelse.

2. Livssyklus for JSP:

Det er visse faser der denne syklusen er delt, definert som følger -

  1. Oversettelsesfase - der JSP-filen blir konvertert til servlet-filen.
  2. Samlingsfase - hvor servlet-fil blir konvertert til servletklasse.
  3. Klasselastning
  4. Instantiering av servlet-objektet
  5. Servlet container kaller jspInit () -metode for initialisering
  6. Servletcontainer kaller _jspService () for behandling av forespørselen
  7. Rydd opp i JSP, her vil servletbeholder kalle metoden jspDestroy ().

La oss nå utdype de ovennevnte trinnene for å få et tydeligere bilde -

Trinn 1

I oversettelsesfasen oversetter servletcontaineren JSP til en servlet slik at kodebasert koding får en ekvivalent form i java, slik at Java Virtual Machine (JVM) kan forstå det (da den ikke forstår språket til kodene) . Denne oversettelsen gjøres av serveren enten ved distribusjon av webapplikasjon eller når JSP får sin første forespørsel om utføring.

Steg 2

Nå er tiden inne for en samling av kildekoder, dvs. konvertering av servletkoden til java-byte-kode (java-byte-kode er et instruksjonssett for virtuell java-maskin).

Trinn 3

Servletklassen som ble lastet fra JSP-kilden, blir nå lastet inn i beholderen.

Trinn 4

Etter å ha lastet en klassefil av nettcontaineren, bruker JSP-containeren nå en ingen-argument-konstruktør for å opprette en forekomst av servletklassen. Nå når beholderen initialiserer objektene med en påkalling av jsplnit () -metoden.

Public void jsplnit()
(
// servlet initialization related snipped to be placed here
)

Trinn 5

Nå er tiden inne for behandling av forespørsler, her blir de initialiserte JSP-ekvivalente servlet-objektene brukt til å behandle klientforespørslene. _jspService () -metoden påberopes av nettcontaineren. Denne påkallelsen gjøres som servlet-objektet som passerer HTTPServletRequest-objektet og HTTPServletResponse-objektet for respektive forespørsler og svar. Merk at det ikke er noen bestemmelse om å overstyre _jspService () -metoden.

Public void _jspService( HttpServletRequest request, HttpServletResponse response)
(
//snipped is placed here
)

Trinn 6

Det siste trinnet heter JSP opprydding, JSP må fjernes fra bruk av beholderen og jspDestroy () -metoden brukes for det samme, denne metoden skal bare påberopes en gang. Det er en bestemmelse å overstyre denne metoden, og som kan gjøres for tilfeller der vi ønsker å utføre den tilpassede handlingen vår, som tilkoblingsutgivelse for database etc.

public void jspDestory()
(
// snippet is placed here
)

Eksempel:

La oss opprette et påloggingsskjema for vårt eksempelapplikasjon, og vi vil bruke JSP for viss innholdsfortegnelse her.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


My Login Form

<%
Date d = new Date();
System.out.println("Current Date= "+d);
%>

UserName

Password


I eksemplet ovenfor blir koden som er plassert inne dynamisk gjengitt som vi nevnte tidligere, nå når denne forespørselen er sendt, vil den bli mottatt av handlingskontrolleren, som i utgangspunktet er en Java-klasse som inneholder parametrene som tilsvarer navnene nevnt i JSP-fil.

En servletbeholder oppretter et modalt objekt og innhold kan bli referert til i andre JSP-er ved å henvise til denne bestemte kontrolleren.

Denne typen MVC-baserte tilnærminger finner i dag et sted med teknologier som -

  1. Vår MVC
  2. Stivere 2
  3. servlets

Spring MVC og Struts 2 har introdusert sin spesifikke URI for å bruke JSP-er på en tilpasset måte, og de introduserer også forskjellige varianter av koder for det som autofullfør, iterator, liste, etc.

Så JSP finner et ideelt sted i mange rammer på grunn av deres fleksibilitet.

Konklusjon

  • Derfor lærte vi at dynamiske nettsteder har sin frontend gjengitt via JSP-er, mens statiske sider direkte kan settes på HTML, ettersom de ikke trenger noen data- / innholdsmanipulasjoner fremover.
  • Moderne teknologier er kompatible med JSP-er og brukes av stivere og vårlignende rammer som finner et sted i store applikasjoner relatert til bank, SCM, butikk, etc.
  • Kompatibel med AJAX krever dynamisk gjengivelse.
  • En applikasjon kan ikke være av typen enkel side, da hver gang det kreves side for å lastes fra backend.
  • Fliser kan brukes til basisoppsettformater i stivere og vår, og det vi trenger å gjengi igjen og igjen er bare kropp.
  • I siste instans blir koder konvertert til HTML-ekvivalent i frontend.
  • JSPs skiller konseptet om innholdspresentasjon og innholdsgenerering.
  • Interceptors er levert av forskjellige rammer som gjør livet enkelt for utviklerne som verktøy i stivere er tilgjengelig for filopplasting prosesser etc.

Anbefalte artikler

Dette har vært en guide til JSP livssyklus. Her diskuterte vi introduksjonen, trinnene og eksemplet på JSP Life Cycle. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. JSP vs ASP
  2. AJAX intervjuspørsmål
  3. Hva er MVC?
  4. JSP vs Servlet
  5. Iteratorer i C #