Le **JSP** (*Java Server Pages*) sono una tecnologia lato server che permette di creare pagine web dinamiche mischiando codice HTML statico con frammenti di codice Java. > [!NOTE] Relazione con le Servlet > In realtà, le JSP sono un'astrazione delle Servlet. Al primo caricamento, il Web Container trasforma automaticamente il file `.jsp` in una classe Java (`Servlet`), la compila e la esegue. ## Sintassi e Tag Speciali Esistono diversi tipi di tag per inserire logica Java in una pagina HTML. ### Scriptlet: `<% ... %>` Contiene blocchi di codice Java generico (loop, condizioni). ```jsp <% String user = request.getParameter("user"); if (user == null) user = "Ospite"; %>
Benvenuto, <%= user %>
``` ### Espressioni: `<%= ... %>` Valuta un'espressione Java, la converte in stringa e la stampa direttamente nella pagina. **Nota:** Non serve il punto e virgola finale. ```jspIl totale è: <%= 10 + 20 %> €
Data corrente: <%= new java.util.Date() %>
``` ### Dichiarazioni: `<%! ... %>` Usato per dichiarare variabili d'istanza o metodi della classe Servlet generata. ```jsp <%! private int contatore = 0; public int raddoppia(int n) { return n * 2; } %> ``` ### Direttive: `<%@ ... %>` Forniscono istruzioni al container su come gestire la pagina. * **Page:** `<%@ page contentType="text/html" import="java.util.*" %>` * **Include:** `<%@ include file="header.html" %>` (Inclusione statica a tempo di traduzione). * **Taglib:** Usata per importare librerie di tag come JSTL. ## Esempio: Pagina Dinamica Esempio di una tabella generata con un ciclo Java: ```jsp| Riga numero: | <%= i %> |