Wikibooks ha un libro sul tema: J2EE Programming/JavaServer Pages
Il codice Java non deve essere completo o autonomo all’interno di un singolo blocco scriptlet. Può cavalcare il contenuto del markup, a condizione che la pagina nel suo complesso sia sintatticamente corretta. Ad esempio, qualsiasi blocco Java if/for/while aperto in uno scriptlet deve essere chiuso correttamente in uno scriptlet successivo affinché la pagina possa essere compilata correttamente. Ciò consente di mescolare il codice e può comportare pratiche di programmazione scadenti.,
Il contenuto che rientra in un blocco diviso di codice Java (che copre più scriptlet) è soggetto a tale codice. Il contenuto all’interno di un blocco if apparirà nell’output solo quando la condizione if diventa true. Allo stesso modo, il contenuto all’interno di un costrutto del ciclo può apparire più volte nell’output, a seconda di quante volte viene eseguito il corpo del ciclo.
Quanto segue sarebbe valido per il ciclo in una pagina JSP:
<p>Counting to three:</p><% for (int i=1; i<4; i++) { %> <p>This number is <%= i %>.</p><% } %><p>OK.</p>
L’output visualizzato nel browser web dell’utente sarebbe:
Counting to three:This number is 1.This number is 2.This number is 3.OK.
Expression LanguageEdit
Versione 2.,0 della specifica JSP aggiunto il supporto per il linguaggio di espressione (EL), utilizzato per accedere ai dati e le funzioni in oggetti Java. In JSP 2.1, è stato piegato nel linguaggio di espressione unificato, che viene utilizzato anche nelle facce JavaServer.
Un esempio di sintassi EL:
Il valore di “variabile” nell’oggetto “javabean” è {{javabean.variabile}.
Tag aggiuntivimodifica
La sintassi JSP aggiunge tag aggiuntivi, chiamati azioni JSP, per richiamare la funzionalità integrata., Inoltre, la tecnologia consente la creazione di librerie di tag JSP personalizzate che fungono da estensioni alla sintassi JSP standard. Una di queste librerie è JSTL, con supporto per attività comuni come iterazione e condizionali (l’equivalente delle istruzioni “for” e “if” in Java.)