Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

La prima pagina JSP

Un'esempio pratico di Java Server Page dalla scrittura del codice all'esecuzione sul server
Un'esempio pratico di Java Server Page dalla scrittura del codice all'esecuzione sul server
Link copiato negli appunti

Dopo aver fatto i dovuti riferimenti teorici è necessario passare alla parte pratica, esaminando l'implementazione di una JSP, e i metodi per renderla il più possibile efficiente e funzionale.

Iniziamo con il classico messaggio "Ciao Mondo!" da stampare a video.

<!-- prova.jsp -->
<html>
<body>

<% out.println("Ciao Mondo!"); %>

</body>
</html>

Come si può notare le sezioni racchiuse tra <% e %> sono quelle che contengono le istruzioni in linguaggio Java (gli stessi limitatori utilizzati anche nelle pagine ASP).

Nota: i file per essere riconosciuti dal server come pagine JSP devono essere salvati con estensione .jsp.

La prima volta che si effettua la richiesta del file, quest'ultimo viene compilato, creando una servlet, che sarà archiviata in memoria (per servire le richieste successive); solo dopo questi passaggi viene elaborata la pagina HTML che viene mandata al browser.

Ad ogni richiesta successiva alla prima il server controlla se sulla pagina .jsp è stata effettuata qualche modifica, in caso negativo richiama la servlet già compilato, altrimenti si occupa di eseguire nuovamente la compilazione e memorizzare la nuova servlet.

Prendendo l'esempio proposto (prova.jsp) la servlet generata sarà costituito dal seguente file Java (che comunque varia leggermente in base all'application server utilizzato):

jrun_provaejspa.java

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import allaire.jrun.jsp.JRunJSPStaticHelpers;

public class jrun__prova2ejspa 
    extends allaire.jrun.jsp.HttpJSPServlet 
    implements allaire.jrun.jsp.JRunJspPage
{

  private ServletConfig config;
  private ServletContext application;
  private Object page = this;
  private JspFactory __jspFactory = JspFactory.getdefaultFactory();

  public void _jspService(HttpServletrequest request, HttpServletresponse response) throws ServletException, java.io.IOException 
  {
    if(config == null)
    {
      config = getServletConfig();
      application = config.getServletContext();
    }
    
    response.setContentType("text/html; charset=ISO-8859-1");
    PageContext pageContext = __jspFactory.getPageContext(this, request, response, null, true, 8192, true);
    
    JspWriter out = pageContext.getOut();
    HttpSession session = pageContext.getSession();

    try {
      out.print("<!-- PROVA.JSP-->rnrn<html>rnrn<body>rnrn");
      out.println ("PRIMA PROVA JSP");
      out.print("rnrn</body>rnrn</html>");
    } catch(Throwable t) {
      if(t instanceof ServletException) throw (ServletException) t;
      if(t instanceof java.io.IOException) throw (java.io.IOException) t;
      if(t instanceof RuntimeException) throw (RuntimeException) t;
      throw JRunJSPStaticHelpers.handleException(t, pageContext);
    } finally {
      __jspFactory.releasePageContext(pageContext);
    }
  }

  private static final String[] __dependencies__ = {"/prova.jsp",null};

  private static final long[] __times__ = {988194570000L,0L};

  public String[] __getdependencies() {
    return __dependencies__;
  }

  public long[] __getLastModifiedTimes() {
    return __times__;
  }

  public int __gettranslationVersion(){
    return 14;
  }
}

Analizzando il codice riportato si può notare come il metodo che effettua il servizio vero e proprio è il metodo _jspService. Esso in un primo tempo verifica la configurazione del server (se non è stata effettuata se ne occupa), per poi impostare in maniera adeguata i parametri che permettono la comunicazione dell'output (viene per esempio specificato che il testo in uscita è codice HTML). Effettuato il controllo della configurazione vengono eseguite le istruzioni per cui il servlet è stato creato (in questo caso la stampa a video del messaggio), tenendo in considerazione gli eventuali errori, creando le adeguate eccezioni. Con l'ultima istruzione il servlet viene rilasciato.

Gli altri metodi servono per fornire alcune informazioni riguardanti la servlet: quando è stata modificata l'ultima volta, la versione della traduzione, il nome del file contenente la pagina JSP cui fa riferimento.

Ti consigliamo anche