Wikibooks tiene un libro sobre el tema: J2EE Programming / JavaServer Pages
no se requiere que el código Java sea completo o autónomo dentro de un solo bloque de scriptlet. Puede incluir contenido de marcado a horcajadas, siempre que la página en su conjunto sea sintácticamente correcta. Por ejemplo, cualquier bloque Java if/for / while abierto en un scriptlet debe cerrarse correctamente en un scriptlet posterior para que la página se compile correctamente. Esto permite que el código se entremezcle y puede resultar en malas prácticas de programación.,
el contenido que se encuentra dentro de un bloque dividido de código Java (que abarca varios scriptlets) está sujeto a ese código. El contenido dentro de un bloque if solo aparecerá en la salida cuando la condición if se evalúe como true. Del mismo modo, el contenido dentro de una construcción de bucle puede aparecer varias veces en la salida, dependiendo de cuántas veces se ejecute el cuerpo del bucle.
lo siguiente sería un bucle for válido en una página JSP:
<p>Counting to three:</p><% for (int i=1; i<4; i++) { %> <p>This number is <%= i %>.</p><% } %><p>OK.</p>
la salida mostrada en el navegador web del usuario sería:
Counting to three:This number is 1.This number is 2.This number is 3.OK.
Expression LanguageEdit
Version 2.,0 de la especificación JSP agregó soporte para el lenguaje de expresiones (El), utilizado para acceder a datos y funciones en objetos Java. En JSP 2.1, fue plegado en el lenguaje de expresión unificada, que también se utiliza en JavaServer Faces.
un ejemplo de sintaxis de El:
el valor de «variable» en el objeto «javabean» es {{javabean.variable}.
etiquetas adicionalesEditar
la sintaxis JSP agrega etiquetas adicionales, llamadas acciones JSP, para invocar la funcionalidad incorporada., Además, la tecnología permite la creación de bibliotecas de etiquetas JSP personalizadas que actúan como extensiones de la sintaxis estándar de JSP. Una de estas bibliotecas es la JSTL, con soporte para tareas comunes como iteración y condicionales (el equivalente de las sentencias «for» Y «if» en Java.)