Zusammenfassungen
Universitätsnotizen im Markdown-Format aus Obsidian.
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
.jspin 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).
<% String user = request.getParameter("user"); if (user == null) user = "Ospite"; %> <p>Benvenuto, <%= user %></p>Espressioni:
<%= ... %>Valuta un'espressione Java, la converte in stringa e la stampa direttamente nella pagina. Nota: Non serve il punto e virgola finale.
<p>Il totale è: <%= 10 + 20 %> €</p> <p>Data corrente: <%= new java.util.Date() %></p>Dichiarazioni:
<%! ... %>Usato per dichiarare variabili d'istanza o metodi della classe Servlet generata.
<%! 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:
<html> <body> <table border="1"> <% for(int i=1; i<=5; i++) { %> <tr> <td>Riga numero:</td> <td><%= i %></td> </tr> <% } %> </table> </body> </html>Oggetti Impliciti
Nelle JSP sono disponibili degli oggetti predefiniti senza doverli dichiarare:
request: L'HttpServletRequest.response: L'HttpServletResponse.session: L'HttpSession.out: Il buffer di output (JspWriter).application: IlServletContext.Inclusione: Statica vs Dinamica
- Direttiva Include (
<%@ include ... %>): Il file viene copiato dentro la JSP prima della compilazione. Se il file incluso cambia, la JSP non sempre viene ricompilata. Ideale per file statici (es. copyright).- Azione Include (
<jsp:include page="..." />): L'inclusione avviene a runtime. La JSP chiama la risorsa esterna, ne prende il risultato e lo inserisce. Più flessibile.