Home
Java Server Pages

25 Luglio 2002

Java Server Pages

di

Come funziona la componente di presentazione di una Web Application J2EE

Abbiamo parlato in precedenza dell’utilizzo di componenti attive lato server che, nel contesto di una Web Application si occupano di gestire le problematiche di back-end e front-end. Si tratta in particolare delle Servlet che, come abbiamo visto, permettono di gestire una request HTTP (anche parametrica) e produrre un output in streaming nella response HTTP in modo che giunga direttamente al dispositivo chiamante.
Questa soluzione, seppur dotata di caratteristiche interessanti, ha però dei limiti intrinseci, vediamo perché.

I limiti delle Servlet

Analizziamo il codice di una delle Servlet di esempio presentate in precedenza, si tratta del file provaServlet.java:

package com.apogeo;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class provaServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(““);
out.println(““);
out.println(““);
out.println(“Prova di utilizzo di una Servlet“);
out.println(““);
out.println(““);
out.println(“

Questo output è prodotto da una Servlet

“);
out.println(““);
out.println(““);
}
}

/

Come si può vedere gran parte del codice di questa Servlet è dedicato alla gestione dell’output attraverso l’utilizzo dell’istruzione out.println(“…”);

Questo comporta che ad ogni singola modifica di un componente dell’interfaccia sia necessario scrivere codice Java e ricompilare la Servlet per testare quanto modificato, certamente non il massimo dell’efficienza.

Non dimentichiamo poi che il codice HTML gestito dai browser di nuova generazione può essere anche molto complesso, magari dotato esso stessi di codice di scripting client side.

Ecco quindi nascere l’esigenza di avere uno strumento più flessibile per la gestione del lato di presentazione di una Web Application, questo strumento può essere costituito dalla Java Server Pages.

Definizioni

Una Java Server Page (JSP) è una pagina HTML condita con codice Java.

La pagina viene trattata dal JSP Engine dell’Application Server e viene trasformata, alla prima chiamata che cerca di utilizzarla, in una Servlet.

In particolare il codice JSP viene trasformato in codice Java, questo viene compilato ottenendo una Servlet il cui comportamento dipenderà da due fattori:

dal suo codice Java (si tratta come vedremo di particolari scripting element) per quanto riguarda la logica di business

dal codice HTML per quanto riguarda l’aspetto di presentazione.ù

Esempio

Per capire come questo possa avvenire scriviamo una JSP di prova, eccone il codice:



Esempio di pagina JSP

Oggi è il: <%= new java.util.Date() %>


/

Ora prendiamo questo codice e creiamo il file:

C:ProgrammiApache Tomcat 4.0webappsapogeoprova.jsp

/

Si tratta quindi di una JSP collocata nella root directory della Web Application di nome “apogeo” nell’application container predefinito dell’application server Tomcat.

Lanciamo ora Tomcat ed effettuiamo una request alla pagina in questione attraverso l’url:

http://localhost:8080/apogeo/prova.jsp

/

Ecco quello che otterremo:

L’utilizzo del tag speciale <%= new java.util.Date() %> ha prodotto il risultato che immaginavamo, ovvero l’output della data corrente del server.

Se adesso andiamo a curiosare nella cartella dove di solito vengono generate e compilate le Servlet derivate dalle JSP, cioè la cartella:

C:ProgrammiApache Tomcat 4.0worklocalhostapogeo

/

troveremo il file prova$jsp.java, contenente il codice Java della Servlet ottenuta dalla prima elaborazione della pagina JSP.

Dalla seconda chiamata in poi, in effetti, la Servlet non deve più essere ricompilata.

Naturalmente al suo fianco sarà presente anche il compilato prova$jsp.java.

Conclusioni

Utilizzando le pagine JSP siamo in grado di scrivere codice HTML arricchito da codice script server side ed il linguaggio utilizzato per scrivere questo codice è, naturalmente, Java.

L'autore

  • Massimo Canducci
    Massimo Canducci vanta oltre 25 anni di esperienza nel campo dell'innovazione e della digital transformation ed è Chief Innovation Officer per Engineering Ingegneria Informatica. È docente alla Singularity University, l'Università di Torino e l'Università di Pavia, e insegna in master MBA.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.