English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

语法JSP

Esta sección presentará de manera sencilla la gramática básica del desarrollo de JSP.

Programa de script

El programa de script puede contener cualquier cantidad de declaraciones, variables, métodos o expresiones en el lenguaje de script, siempre que sean válidos.

La sintaxis del programa de script:

<% fragmento de código %>

O también puede escribir una declaración XML equivalente, como se muestra a continuación:

<jsp:scriptlet>
   Fragmento de código
</jsp:scriptlet>

Cualquier texto, etiqueta HTML o elemento JSP debe escribirse fuera del programa de script.

A continuación, se presenta un ejemplo, que también es el primer ejemplo de JSP de este tutorial:

<html>
<head><title>Hello World</title></head>
<body>
¡Hola, Mundo! <br>/>
<%
out.println("Tu dirección IP es ") + request.getRemoteAddr());
%>
</body>
</html>

Nota:Asegúrate de que Apache Tomcat esté instalado en C:\apache-tomcat-7.0.2directorío y asegúrate de que el entorno de ejecución esté configurado correctamente.

Guarda el siguiente código en hello.jsp y colócalo en C:\apache-tomcat-7.0.2\webapps\ROOT\directorío, abre el navegador y escribe en la barra de direcciones http://localhost:8080/hello.jsp. Después de ejecutarlo, se obtiene el siguiente resultado:

Problemas de codificación de caracteres chinos

Si queremos mostrar chino correctamente en la página, debemos agregar el siguiente código en la cabecera del archivo JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">

A continuación, modificaremos el programa anterior:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</head>
<body>
¡Hola, Mundo! <br>/>
<%
out.println("Tu dirección IP es ") + request.getRemoteAddr());
%>
</body>
</html>

De esta manera, el chino se puede mostrar correctamente.

    Declaración de JSP

Una declaración puede declarar una o más variables y métodos, que se pueden usar en el código Java posterior. En un archivo JSP, debe declarar estas variables y métodos antes de poder usarlos.

Formato de sintaxis de declaraciones JSP:

<%! declaración; [ declaración; ]+ ... %>

O también puede escribir una declaración XML equivalente, como se muestra a continuación:

<jsp:declaration>
   Fragmento de código
</jsp:declaration>

Ejemplo de programa:

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

    Expresión JSP

Una expresión de lenguaje de script que contiene una expresión JSP se convierte primero en String y luego se inserta en el lugar donde aparece la expresión.

Dado que el valor de la expresión se convertirá en String, se puede usar una expresión en una línea de texto sin preocuparse por si es una etiqueta HTML.

Los elementos de expresión pueden contener cualquier expresión que cumpla con el estándar del lenguaje Java, pero no se puede usar un punto y coma para finalizar la expresión.

Formato de sintaxis de expresiones JSP:

<%= expresión %>

Del mismo modo, también puede escribir una declaración XML equivalente:

<jsp:expression>
   Expresión
</jsp:expression>

Ejemplo de programa:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</head>
<body>
<p>
   La fecha de hoy es: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

运行后得到以下结果:

La fecha de hoy es: 2016-6-25 13:40:07

    Comentarios JSP

Los comentarios JSP tienen dos principales funciones: hacer comentarios sobre el código y comentar un fragmento de código.

Formato de sintaxis de comentarios JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</head>
<body>
<%-- Esta parte del comentario no se mostrará en la página web--%> 
<p>
   La fecha de hoy es: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

运行后得到以下结果:

La fecha de hoy es: 2016-6-25 13:41:26

Reglas de sintaxis para el uso de comentarios en diferentes situaciones:

Sintaxis                Descripción
                <%-- Comentarios --%>                Comentarios JSP, el contenido de los comentarios no se enviará al navegador ni se compilará
                <!-- Comentarios -->                Comentarios HTML, el contenido de los comentarios se puede ver al ver el código fuente de la página a través del navegador
                <\%                Representa la constante estática <%
                %\>                Representa la constante estática %>
                \'                Comillas simples utilizadas en propiedades
                \"                Comillas dobles utilizadas en propiedades

    Instrucciones JSP

Las instrucciones JSP se utilizan para establecer propiedades relacionadas con toda la página JSP.

Formato de sintaxis de instrucciones JSP:

<%@ directive attribute="value" %>

Aquí hay tres tipos de etiquetas de instrucción:

DirectivasDescripción
                <%@ page ... %>                Definir las propiedades dependientes de la página, como el lenguaje de script, la página de error, las necesidades de caché, etc.
                <%@ include ... %>                Incluir otros archivos
                <%@ taglib ... %>                Introducción a la definición de la biblioteca de etiquetas, puede ser personalizada

    Comportamiento de JSP

Las etiquetas de comportamiento de JSP utilizan la estructura de sintaxis XML para controlar el motor de servlet. Puede insertar dinámicamente un archivo, reutilizar componentes JavaBean, redirigir al usuario a otra página, generar HTML relacionado con Java Plugin, etc.

Las etiquetas de comportamiento tienen un solo formato de sintaxis, que se ajusta estrictamente a los estándares XML:

<jsp:action_name attribute="value" />

Las etiquetas de comportamiento básicamente son funciones predefinidas, a continuación se muestra una lista de algunas etiquetas de comportamiento de JSP disponibles:

SintaxisDescripción
                jsp:include                Usado para incluir recursos estáticos o dinámicos en la página actual
                jsp:useBean                Busca e inicializa un componente JavaBean
                jsp:setProperty                Establece el valor del componente JavaBean
                jsp:getProperty                Inserta el valor del componente JavaBean en output
                jsp:forward                Transmite un objeto request que contiene la solicitud del usuario de un archivo JSP a otro archivo
                jsp:plugin                Usado para incluir en la página HTML generada objetos Applet y JavaBean
                jsp:element                Crea dinámicamente un elemento XML
                jsp:attribute                Define las propiedades del elemento XML creado dinámicamente
                jsp:body                Define el cuerpo del elemento XML creado dinámicamente
                jsp:text                Usado para encapsular datos de plantilla

    Objetos implícitos de JSP

JSP admite nueve variables definidas automáticamente, conocidas como objetos implícitos. A continuación, se presenta una breve descripción de estos nueve objetos implícitos en la tabla siguiente:

ObjetoDescripción
                requestHttpServletRequestEjemplo de clase
                responseHttpServletResponseEjemplo de clase
                outPrintWriterEjemplo de clase, utilizado para enviar resultados a la página web
                sessionHttpSessionEjemplo de clase
                applicationServletContextEjemplo de clase, relacionado con el contexto de aplicación
                configServletConfigEjemplo de clase
                pageContextPageContextEjemplo de clase, que proporciona acceso a todos los objetos de la página JSP y a los espacios de nombres
                page                Similares al keyword this en las clases Java
                exceptionexception Objeto de clase, que representa el objeto de excepción correspondiente a la página JSP que ha producido el error

    Sentencias de flujo de control

JSP proporciona soporte completo para el lenguaje Java. Puede usar Java API en programas JSP incluso crear bloques de código Java, incluyendo sentencias de decisión y de bucle, etc.

    判断语句

If…else块,请看下面这个实例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程(oldtoolbag.com)</title>
</head>
<body>
<h2>IF...ELSE 示例</h2>
<% if (day == 1 | day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>
</body> 
</html>

运行后得到以下结果:

IF...ELSE 示例
今天不是周末

现在来看看switch…case块,与if…else块有很大的不同,它使用out.println(),并且整个都装在脚本程序的标签中,就像下面这样:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程(oldtoolbag.com)</title>
</head>
<body>
<h2>SWITCH...CASE 示例</h2>
<% 
switch(day) {
case 0:
   out.println("星期天");
   break;
case 1:
   out.println("星期一");
   break;
case 2:
   out.println("星期二");
   break;
case 3:
   out.println("星期三");
   break;
case 4:
   out.println("星期四");
   break;
case 5:
   out.println("星期五");
   break;
default:
   out.println("星期六");
}
%>
</body> 
</html>

浏览器访问,运行后得出以下结果:

SWITCH...CASE 示例
星期三

循环语句

在JSP程序中可以使用Java的三个基本循环类型:for,while,和 do…while。

让我们来看看for循环的实例,以下输出的不同字体大小的"基础教程网":

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程网(oldtoolbag.com)</title>
</head>
<body>
<h2>For 循环示例</h2>
<% for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    教程基本
   </font><br />
<%}%>
</body> 
</html>

运行后得到以下结果:

将上例改用 while 循环来写:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8">
<%! int fontSize=0; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础教程(oldtoolbag.com)</title>
</head>
<body>
<h2>示例循环While</h2>
<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    教程基本
   </font><br />
<%fontSize++;%>
<%}%>
</body> 
</html>

访问浏览器,输出结果为(fontSize 初始化为0,所以多输出了一行):

    运算符JSP

JSP支持所有Java逻辑和算术运算符。

下表罗列出了JSP常见运算符,优先级从高到底:

类别操作符结合性
                后缀                () [] . (点运算符)                从左到右
                一元                ++ - - ! ~                从右到左
                可乘性                * / %                 从左到右
                可加性                + -                 从左到右
                移位                >> >>> <<                  从左到右 
                关系                > >= < <=                  从左到右
                相等/不等                == !=                 从左到右
                与位                &                 从左到右
                异或位                ^                 从左到右
                或位                |                 从左到右
                与逻辑                &&                 从左到右
                或逻辑                ||                 从左到右
                判断条件                ?:                 从右到左
                赋值                = += -= *= /= %= >>= <<= &= ^= |=                 从右到左
                逗号                 ,                 从左到右 

    字面量JSP

JSP语言定义了以下几个字面量:

  •             布尔值(boolean):true 和 false;

  •             整型(int):与 Java 中的一样;

  •             浮点型(float):与 Java 中的一样;

  •             字符串(string):以单引号或双引号开始和结束;

  •             Null:null。