Articles

JSP Life cycle Events explained

I JSP sono in realtà servlet, come hai già visto. Il contenitore convertirà tutti i file JSP in servlet prima di eseguirli. I JSP forniscono solo un modo semplice per creare componenti contenenti codice non java.

Una volta creata e distribuita una pagina JSP, il contenitore eseguirà alcuni eventi del ciclo di vita, che includono anche la chiamata di alcuni dei suoi metodi simili agli eventi del ciclo di vita servlet.

  1. JSP page translation (validation, translation, compilation phases)
  2. Load Class
  3. Instantiate
  4. jspInit metodo è chiamato
  5. _jspService metodo è chiamato
  6. jspDestroy metodo è chiamato

JSP page translation (validation, translation, compilation phases)

La validazione viene eseguita prima della traduzione. Verifica della sintassi avviene e tutti i riferimenti alle librerie di tag, azioni e funzioni EL nel JSP sono convalidati per garantire che essi esistono e sono accessibili alla pagina, e se ci sono problemi si verifica un errore e impedisce il processo di traduzione di continuare.

Prima della convalida, la pagina JSP viene convertita in una vista XML e questa vista xml viene quindi convalidata e tradotta.

La pagina iniziale di input JSP viene tradotta in codice sorgente servlet. Nel farlo, scriverà le istruzioni di stampa per ciascuna delle righe non java nel JSP. Questo servlet generato dovrebbe implementare HttpJspPage o il suo genitore JspPage in base a se l’ambiente è basato su HTTP o meno. Blog correlato: angular training in Chennai

  • Un fornitore avrà in genere un servlet di base JSP specializzato, estendendo e implementando tutte le classi o interfacce richieste. In Tomcat, questo è chiamato org.Apache.jasper.runtime.HttpJspBase. HttpJspBase estende HttpServlet e GenericServlet e implementa HttpJspPage, JspPage, Serializable, Servlet, ServletConfig.

Il codice sorgente Servlet viene quindi compilato in un file di classe servlet.

Uscite

  • Ci sono due uscite nella fase di traduzione.
  • Il primo è un output intermedio: un file sorgente Java per un servlet.
  • Il secondo è il file di classe compilato dalla sorgente servlet.
  • Il file di classe viene mantenuto per un uso futuro e la maggior parte dei contenitori JSP può conservare o offrire un’opzione in base alla quale è possibile mantenere l’origine servlet per scopi di debug.
  • In Tomcat, la sorgente Java servlet generata e la classe compilata durante la traduzione JSP saranno, per impostazione predefinita, mantenute nella directory<Tomcat-Installation-Directory>/work/Catalina/localhost/ < context – directory > /org/apache/jsp.

Timing

  • Anche se un contenitore JSP ha discrezione su quando si verifica la traduzione, per impostazione predefinita (nella maggior parte dei casi) il JSP viene compilato in un servlet e quindi caricato la prima volta che si accede.
  • Ciò potrebbe causare un piccolo ritardo per la prima richiesta, ma non ci sarà alcun ritardo nelle richieste successive.
  • In alcuni server di applicazioni, è anche possibile precompilare JSP prima di aggiungerli in JAR.

Errori

  • Se una pagina non riesce a tradurre, una richiesta HTTP per la pagina dovrebbe dare origine a un codice di stato 500 (errore del server) comunicato nella risposta HTTP.

Classe di carico

  • La classe servlet generata viene caricata utilizzando il class loader dell’applicazione.

Instantiate

  • Viene creata un’istanza della classe servlet.
  • Per ogni dichiarazione di mappatura servlet del JSP nel web.xml (simile ai servlet), viene creata una nuova istanza in aggiunta all’istanza del file JSP standard. Se ho una pagina JSP nella radice del contesto, e ho anche registrato la stessa pagina JSP nel web.xml, avrò due istanze di quel JSP creato.

Il metodo jspInit è chiamato

  • È possibile ignorare questo metodo.

Il metodo _jspService è chiamato

  • Quando vengono effettuate richieste, il contenitore chiama il servizio del servlet generato(richiesta, risposta) metodo, che dovrebbe chiamare il metodo _jspService(), passando i parametri di richiesta e risposta.
  • Non dovremmo ignorare _jspService() dalla nostra pagina JSP. Questo metodo rappresenta l’origine della pagina in forma di codice Java: spetta ai generatori di pagine del contenitore implementare questo metodo per ogni singolo JSP.
  • Tuttavia le specifiche JSP sono abbastanza flessibili da accogliere qualsiasi protocollo di richiesta /risposta che si desidera implementare sovrascrivendo questo metodo; e solo per questo è necessario sovrascrivere il metodo _jspService.

Il metodo jspDestroy è chiamato

  • Chiamato prima che l’istanza del servlet JSP venga annullata e raccolta dei rifiuti

Punti importanti da ricordare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.