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