Scripting elements e Direttive
Pagina 1 di 2
Una pagina JSP viene tradotta sistematicamente in una normale Servlet da parte del motore JSP, per poi essere passata al compilatore java. Questo processo di generazione, prevede l' utilizzo di diversi tipi di elementi sintattici, ad ognuno dei quali è associato un certo tipo di elaborazione. Vedremo in questo articolo tre di questi elementi : il contenuto statico, lo script, e le direttive.
Il contenuto statico è semplicemente il codice HTML/Javascript/Css che inseriamo nella pagina e non necessita di alcuna marcatura aggiuntiva, ma solo l'utilizzo dei normali tag HTML. Vediamo invece in maniera dettagliata gli altri due elementi che presentano alcune particolarità che è opportuno approfondire.
Script (Scripting Elements)
Lo script è il codice java che "convive amichevolmente" nella stessa pagina con l' HTML, ma a differenza di quest'ultimo viene generato dinamicamente.
La tecnologia JSP mette a diposizione tre tipi di script per inserire il codice, dove ciascuno occupa una posizione ben definita all' interno della servlet generata :
- Dichiarazioni
- Espressioni
- Scriptlet
Le Dichiarazioni ci consentono di dichiarare nella pagina variabili e metodi attraverso la sintassi:
<%! dichiarazione %>Il motore JSP traduce le dichiarazioni come campi di classi e metodi della Servlet generata. Un esempio di dichiarazione può essere :
<%! String nome = "Antonio" %>
//Oppure possiamo dichiarare un intero metodo:
<%!
public java.util.Date getData() {
return new java.util.Date();
}
%>
Le Espressioni sono degli elementi dello script che vengono valutate logicamente, letteralmente o matematicamente, il cui risultato viene convertito in java.lang.String. La sintassi è la seguente :
<%= espressione %>Quando il motore JSP incontra un' espressione durante il processo di traduzione ne genera direttamente il risultato e lo inserisce nello stream di output. Una possibile espressione può essere :
<%= System.currentTimeMillis() %>In questo caso viene inserito nello stream di output il risultato della funzione che ritona il timestamp del sistema.
Gli Scriptles infine ci permettono di inserire all' interno della pagina JSP porzioni di codice java, che viene inserito nella Servlet a tempo di compilazione. La sintassi del tag è :
<% codice java %>Il traduttore quando incontra uno scriptlet mette tutto nel metodo _jspService.
Solitamente, tutte le istruzioni che non ritornano un valore vanno inserite negli scriptlets.
Vediamo un esempio che utilizza tutti tipi di tag:
<!-- Dichiarazione -->
<%!
String messaggio;
public java.util.Calendar getData() {
return new java.util.GregorianCalendar();
}
%>
<html>
<head>
<title>Tag JSP</title>
</head>
<body>
<!-- Scriptlet -->
<%
java.util.Calendar data = getData();
int ora = data.get(java.util.Calendar.HOUR);
int minuti = data.get(java.util.Calendar.MINUTE);
int secondi = data.get(java.util.Calendar.SECOND);
String orario = "!! sono le ore "+ora+":"+minuti+":"+secondi;
if (data.get(java.util.Calendar.AM_PM) == 0) messaggio = "<b>Buongiorno</b>"+orario+" del mattino";
else messaggio = "<b>Buonasera</b>"+orario+" del pomeriggio";
%>
<!-- Espressione -->
<%= messaggio %> <br/>
</body>
</html>
L' esempio genera una pagina HTML dove visualizza un messaggio di Buongiorno o Buonasera (dipende dall' orario) con l'ora relativa all'elaborazione.







