Articles

evenimentele ciclului de viață JSP explicate

JSP-urile sunt de fapt servleturi, așa cum ați văzut deja. Containerul va converti toate fișierele JSP în servleturi înainte de a le executa. JSP-urile oferă doar o modalitate ușoară de a crea componente care conțin cod non-java.

odată ce o pagină JSP este creată și implementată, containerul va face unele evenimente ciclului de viață, care include, de asemenea, apelarea unora dintre metodele sale similare evenimentelor ciclului de viață servlet.

  1. JSP page traducere (validare, traducere, faze de compilare)
  2. clasa de încărcare
  3. Instantiate
  4. metoda jspInit se numește
  5. metoda _jspService se numește
  6. metoda jspDestroy se numește

traducerea paginii JSP (validare, traducere, faze de compilare)

validarea este efectuată înainte de traducere. Verificarea sintaxei se întâmplă și toate referințele la bibliotecile de etichete, acțiunile și funcțiile EL din JSP sunt validate pentru a se asigura că există și sunt accesibile paginii și, dacă există probleme, apare o eroare și împiedică continuarea procesului de traducere.

înainte de validare, pagina JSP este convertită într-o vizualizare XML și această vizualizare xml este apoi validată și tradusă.

pagina inițială de intrare JSP este tradusă în codul sursă servlet. În timp ce face acest lucru, se va scrie declarațiile de imprimare pentru fiecare dintre liniile non java în JSP. Acest servlet generat ar trebui să implementeze HttpJspPage sau jsppage părinte bazat pe dacă mediul este HTTP bazat sau nu. Blog înrudit: angular training în Chennai

  • un furnizor va avea de obicei un servlet de bază JSP specializat, extinzând și implementând toate clasele sau interfețele necesare. În Tomcat, aceasta se numește org.apache.jasper.runtime.HttpJspBase. HttpJspBase extinde HttpServlet și GenericServlet, și implementează HttpJspPage, JspPage, Serializable, Servlet, ServletConfig.

codul sursă Servlet este apoi compilat într-un fișier de clasă servlet.

ieșiri

  • există două ieșiri în faza de traducere.
  • prima este o ieșire intermediară: un fișier sursă Java pentru un servlet.
  • al doilea este fișierul de clasă compilat din sursa servlet.
  • fișierul de clasă este reținut pentru utilizare ulterioară și majoritatea containerelor JSP vă pot reține sau vă pot oferi o opțiune prin care puteți păstra sursa servlet în scopuri de depanare.
  • în Tomcat, sursa Java servlet generată și clasa compilată în timpul traducerii JSP vor fi păstrate în mod implicit în directorul <Tomcat-Installation-Directory>/work/Catalina/localhost/<context – directory> /org/apache/jsp.

Timing

  • chiar dacă un container JSP are discreție cu privire la momentul în care are loc traducerea, în mod implicit (în majoritatea cazurilor) JSP este compilat într-un servlet și apoi încărcat prima dată când este accesat.
  • acest lucru ar putea cauza o mică întârziere pentru prima solicitare, dar nu va exista nicio întârziere în cererile ulterioare.
  • în anumite servere de aplicații, puteți precompila JSP-urile înainte de a le adăuga în borcane.

erori

  • dacă o pagină nu reușește să traducă, o solicitare HTTP pentru pagină ar trebui să dea naștere unui cod de stare 500 (Eroare server) comunicat înapoi în răspunsul HTTP.

clasa de încărcare

  • clasa servlet generată este încărcată folosind încărcătorul de clasă al aplicației.

Instantiate

  • se creează o instanță a clasei servlet.
  • pentru fiecare declarație de mapare servlet a JSP în web.xml (similar cu servleturile), este creată o nouă instanță în plus față de instanța de fișier JSP standard. Dacă am o pagină JSP în rădăcina context, și am înregistrat, de asemenea, aceeași pagină JSP în web.xml, voi avea două instanțe ale acelui JSP creat.

metoda jspInit se numește

  • puteți suprascrie această metodă.

metoda _jspService se numește

  • când sunt făcute cereri, containerul apelează serviciul generat servlet(cerere, răspuns) metodă, care ar trebui să apeleze metoda _jspService(), trecând parametrii cerere și răspuns.
  • noi nu ar trebui să suprascrie _jspService() din pagina noastră JSP. Această metodă reprezintă sursa paginii dvs. sub formă de cod Java — depinde de generatoarele de pagini ale containerului pentru implementarea acestei metode pentru fiecare JSP individual.
  • cu toate acestea, spec JSP este suficient de flexibil pentru a se potrivi orice protocol cerere /răspuns pe care doriți să pună în aplicare prin suprascrierea această metodă; și pentru că numai tu trebuie să suprascrie metoda _jspService.

metoda jspDestroy se numește

  • numită înainte ca instanța servletului JSP să fie anulată și gunoiul colectat

puncte importante de reținut

Lasă un răspuns

Adresa ta de email nu va fi publicată.