JSP: n elinkaari

JSP: n sivu muutetaan Servletiksi palvelupyyntöjä varten. JSP-sivun kääntämistä Servletiksi kutsutaan JSP: n elinkaareksi. JSP: n elinkaari on täsmälleen sama kuin Servletin elinkaari, ja siinä on yksi ensimmäinen lisäaskel, joka on JSP-koodin kääntäminen Servlet-koodiksi. Seuraavassa on JSP: n elinkaaren vaiheet:

  1. käännös JSP: stä Servlet-koodiksi.
  2. kokoelma Servletistä bytecode.
  3. Kuormauspalveluluokka.
  4. luodaan servlet-instanssi.
  5. alustus kutsumalla jspInit() menetelmä
  6. pyynnön käsittely kutsumalla _jspService() menetelmä
  7. tuhoaminen kutsumalla jspDestroy() menetelmä

JSP: n elinkaari

Web Container muuntaa JSP-koodin servlet-luokan lähteeksi(.java) tiedosto, sitten compiles että osaksi java servlet Luokka. Kolmannessa vaiheessa servlet class bytecode Ladataan classloader-ohjelmalla. Kontti luo sitten kyseisen servlet-luokan esiintymän.

alustettu servlet voi nyt pyytää palvelua. Kunkin pyynnön Web Container soita _jspService () menetelmä. Kun säiliö poistaa servlet-instanssin palvelusta, se kutsuu jspdestroy () – menetelmää kaikkien tarvittavien puhdistusten suorittamiseksi.

mitä JSP: lle tapahtuu, kun se käännetään Servletiksi

katsotaan, mitä JSP-koodille oikeasti tapahtuu, kun se käännetään Servletiksi. : n sisälle kirjoitettu koodi on JSP-koodi.

<html> <head> <title>My First JSP Page</title> </head> <% int count = 0; %> <body> Page Count is: <% out.println(++count); %> </body></html>

yllä JSP: n sivu (hello.jsp) becomes this Servlet,

public class hello_jsp extends HttpServlet{ public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { PrintWriter out = response.getWriter(); response.setContenType("text/html"); out.write("<html><body>"); int count=0; out.write("Page count is:"); out.print(++count); out.write("</body></html>"); }}

tämä on vain selittää, mitä tapahtuu sisäisesti. Koska JSP Kehittäjä, sinun ei tarvitse huolehtia siitä, miten JSP sivu muunnetaan Servlet, koska se tapahtuu automaattisesti web container.