JSP - Sintaxis

En este capítulo, discutiremos la sintaxis en JSP. Comprenderemos el uso básico de sintaxis simple (es decir, elementos) involucrados con el desarrollo de JSP.

Elementos de JSP

Los elementos de JSP se describen a continuación:

El Scriptlet

Un scriptlet puede contener cualquier número de declaraciones en lenguaje JAVA, declaraciones de variables o métodos, o expresiones que sean válidas en el lenguaje de secuencias de comandos de página.

A continuación se muestra la sintaxis de Scriptlet:

<% code fragment %>

Puede escribir el equivalente XML de la sintaxis anterior de la siguiente manera:

<jsp:scriptlet>
   code fragment
</jsp:scriptlet>

Cualquier texto, etiquetas HTML o elementos JSP que escriba deben estar fuera del scriptlet. A continuación se muestra el primer y sencillo ejemplo de JSP:

<html>
   <head><title>Hello World</title></head>
   
   <body>
      Hello World!<br/>
      <%
         out.println("Your IP address is " + request.getRemoteAddr());
      %>
   </body>
</html>

NOTE - Suponiendo que Apache Tomcat está instalado en C: \ apache-tomcat-7.0.2 y su entorno está configurado según el tutorial de configuración del entorno.

Mantengamos el código anterior en un archivo JSP hello.jsp y poner este archivo en C:\apache-tomcat7.0.2\webapps\ROOTdirectorio. Navega por el mismo usando URLhttp://localhost:8080/hello.jsp. El código anterior generará el siguiente resultado:

Declaraciones JSP

Una declaración declara una o más variables o métodos que puede utilizar en el código Java más adelante en el archivo JSP. Debe declarar la variable o el método antes de usarlo en el archivo JSP.

A continuación se muestra la sintaxis de las declaraciones JSP:

<%! declaration; [ declaration; ]+ ... %>

Puede escribir el equivalente XML de la sintaxis anterior de la siguiente manera:

<jsp:declaration>
   code fragment
</jsp:declaration>

A continuación se muestra un ejemplo de declaraciones JSP:

<%! int i = 0; %> 
<%! int a, b, c; %> 
<%! Circle a = new Circle(2.0); %>

Expresión JSP

Un elemento de expresión JSP contiene una expresión de lenguaje de secuencias de comandos que se evalúa, se convierte en una cadena y se inserta donde aparece la expresión en el archivo JSP.

Como el valor de una expresión se convierte en una cadena, puede utilizar una expresión dentro de una línea de texto, esté o no etiquetada con HTML, en un archivo JSP.

El elemento de expresión puede contener cualquier expresión que sea válida de acuerdo con la Especificación del lenguaje Java, pero no puede usar un punto y coma para finalizar una expresión.

A continuación se muestra la sintaxis de la expresión JSP:

<%= expression %>

Puede escribir el equivalente XML de la sintaxis anterior de la siguiente manera:

<jsp:expression>
   expression
</jsp:expression>

El siguiente ejemplo muestra una expresión JSP:

<html> 
   <head><title>A Comment Test</title></head> 
   
   <body>
      <p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
   </body> 
</html>

El código anterior generará el siguiente resultado:

Today's date: 11-Sep-2010 21:24:25

Comentarios JSP

El comentario JSP marca texto o declaraciones que el contenedor JSP debe ignorar. Un comentario JSP es útil cuando desea ocultar o "comentar" una parte de su página JSP.

A continuación se muestra la sintaxis de los comentarios JSP:

<%-- This is JSP comment --%>

El siguiente ejemplo muestra los comentarios JSP:

<html> 
   <head><title>A Comment Test</title></head> 
   
   <body> 
      <h2>A Test of Comments</h2> 
      <%-- This comment will not be visible in the page source --%> 
   </body> 
</html>

El código anterior generará el siguiente resultado:

A Test of Comments

Hay una pequeña cantidad de construcciones especiales que puede usar en varios casos para insertar comentarios o caracteres que de otra manera serían tratados de manera especial. Aquí hay un resumen:

S.No. Sintaxis y propósito
1

<%-- comment --%>

Un comentario JSP. Ignorado por el motor JSP.

2

<!-- comment -->

Un comentario HTML. Ignorado por el navegador.

3

<\%

Representa estático <% literal.

4

%\>

Representa%> literal estático.

5

\'

Una comilla simple en un atributo que usa comillas simples.

6

\"

Una comilla doble en un atributo que utiliza comillas dobles.

Directivas JSP

Una directiva JSP afecta la estructura general de la clase de servlet. Suele tener la siguiente forma:

<%@ directive attribute="value" %>

Hay tres tipos de etiquetas de directiva:

S.No. Directiva y descripción
1

<%@ page ... %>

Define atributos que dependen de la página, como el lenguaje de secuencias de comandos, la página de error y los requisitos de almacenamiento en búfer.

2

<%@ include ... %>

Incluye un archivo durante la fase de traducción.

3

<%@ taglib ... %>

Declara una biblioteca de etiquetas, que contiene acciones personalizadas, utilizadas en la página.

Explicaríamos la directiva JSP en un capítulo separado JSP - Directivas

Acciones JSP

Uso de acciones JSP constructsen sintaxis XML para controlar el comportamiento del motor de servlets. Puede insertar dinámicamente un archivo, reutilizar componentes JavaBeans, reenviar al usuario a otra página o generar HTML para el complemento Java.

Solo hay una sintaxis para el elemento Action, ya que cumple con el estándar XML:

<jsp:action_name attribute="value" />

Los elementos de acción son básicamente funciones predefinidas. La siguiente tabla enumera las acciones JSP disponibles:

S.No. Sintaxis y propósito
1

jsp:include

Incluye un archivo en el momento en que se solicita la página.

2

jsp:useBean

Busca o crea una instancia de un JavaBean.

3

jsp:setProperty

Establece la propiedad de un JavaBean.

4

jsp:getProperty

Inserta la propiedad de un JavaBean en la salida.

5

jsp:forward

Reenvía al solicitante a una nueva página.

6

jsp:plugin

Genera código específico del navegador que crea una etiqueta OBJECT o EMBED para el complemento de Java.

7

jsp:element

Define elementos XML de forma dinámica.

8

jsp:attribute

Define el atributo del elemento XML definido dinámicamente.

9

jsp:body

Define el cuerpo del elemento XML definido dinámicamente.

10

jsp:text

Se utiliza para escribir texto de plantilla en páginas y documentos JSP.

Explicaríamos las acciones de JSP en un capítulo separado JSP - Acciones

Objetos implícitos JSP

JSP admite nueve variables definidas automáticamente, que también se denominan objetos implícitos. Estas variables son:

S.No. Descripción del objeto
1

request

Este es el HttpServletRequest objeto asociado con la solicitud.

2

response

Este es el HttpServletResponse objeto asociado a la respuesta al cliente.

3

out

Este es el PrintWriter objeto utilizado para enviar salida al cliente.

4

session

Este es el HttpSession objeto asociado con la solicitud.

5

application

Este es el ServletContext objeto asociado con el contexto de la aplicación.

6

config

Este es el ServletConfig objeto asociado a la página.

7

pageContext

Esto encapsula el uso de funciones específicas del servidor como un mayor rendimiento JspWriters.

8

page

Esto es simplemente un sinónimo de this, y se utiliza para llamar a los métodos definidos por la clase de servlet traducida.

9

Exception

los Exception El objeto permite acceder a los datos de excepción mediante JSP designado.

Explicaríamos JSP Implicit Objects en un capítulo separado JSP - Implicit Objects .

Declaraciones de flujo de control

Puede usar todas las API y los bloques de construcción de Java en su programación JSP, incluidas las declaraciones de toma de decisiones, los bucles, etc.

Declaraciones para la toma de decisiones

los if...else El bloque comienza como un Scriptlet normal, pero el Scriptlet se cierra en cada línea con texto HTML incluido entre las etiquetas de Scriptlet.

<%! int day = 3; %> 
<html> 
   <head><title>IF...ELSE Example</title></head> 
   
   <body>
      <% if (day == 1 || day == 7) { %>
         <p> Today is weekend</p>
      <% } else { %>
         <p> Today is not weekend</p>
      <% } %>
   </body> 
</html>

El código anterior generará el siguiente resultado:

Today is not weekend

Ahora mira lo siguiente switch...case bloque que se ha escrito un poco diferente usando out.println() y dentro de Scriptletas -

<%! int day = 3; %> 
<html> 
   <head><title>SWITCH...CASE Example</title></head> 
   
   <body>
      <% 
         switch(day) {
            case 0:
               out.println("It\'s Sunday.");
               break;
            case 1:
               out.println("It\'s Monday.");
               break;
            case 2:
               out.println("It\'s Tuesday.");
               break;
            case 3:
               out.println("It\'s Wednesday.");
               break;
            case 4:
               out.println("It\'s Thursday.");
               break;
            case 5:
               out.println("It\'s Friday.");
               break;
            default:
               out.println("It's Saturday.");
         }
      %>
   </body> 
</html>

El código anterior generará el siguiente resultado:

It's Wednesday.

Declaraciones de bucle

También puede utilizar tres tipos básicos de bloques de bucle en Java: for, while, and do…while bloques en su programación JSP.

Veamos lo siguiente for ejemplo de bucle -

<%! int fontSize; %> 
<html> 
   <head><title>FOR LOOP Example</title></head> 
   
   <body>
      <%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
         <font color = "green" size = "<%= fontSize %>">
            JSP Tutorial
      </font><br />
      <%}%>
   </body> 
</html>

El código anterior generará el siguiente resultado:

JSP Tutorial 
JSP Tutorial
JSP Tutorial

El ejemplo anterior se puede escribir usando el while bucle de la siguiente manera:

<%! int fontSize; %> 
<html> 
   <head><title>WHILE LOOP Example</title></head> 
   
   <body>
      <%while ( fontSize <= 3){ %>
         <font color = "green" size = "<%= fontSize %>">
            JSP Tutorial
         </font><br />
         <%fontSize++;%>
      <%}%>
   </body> 
</html>

El código anterior generará el siguiente resultado:

JSP Tutorial 

 JSP Tutorial 

 JSP Tutorial

Operadores JSP

JSP admite todos los operadores lógicos y aritméticos compatibles con Java. La siguiente tabla enumera todos los operadores con la mayor precedencia que aparecen en la parte superior de la tabla, los que tienen la menor prioridad aparecen en la parte inferior.

Dentro de una expresión, los operadores de mayor precedencia se evaluarán primero.

Categoría Operador Asociatividad
Sufijo () []. (operador de punto) De izquierda a derecha
Unario ++ - -! ~ De derecha a izquierda
Multiplicativo * /% De izquierda a derecha
Aditivo + - De izquierda a derecha
Cambio >> >>> << De izquierda a derecha
Relacional >> = <<= De izquierda a derecha
Igualdad ==! = De izquierda a derecha
Y bit a bit Y De izquierda a derecha
XOR bit a bit ^ De izquierda a derecha
O bit a bit | De izquierda a derecha
Y lógico && De izquierda a derecha
OR lógico || De izquierda a derecha
Condicional ?: De derecha a izquierda
Asignación = + = - = * = / =% = >> = << = & = ^ = | = De derecha a izquierda
Coma , De izquierda a derecha

Literales JSP

El lenguaje de expresión JSP define los siguientes literales:

  • Boolean - verdadero y falso

  • Integer - como en Java

  • Floating point - como en Java

  • String- con comillas simples y dobles; "se escapa como \", 'se escapa como \' y \ se escapa como \\.

  • Null - nulo