English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Esta sección presentará de manera sencilla la gramática básica del desarrollo de JSP.
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:
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.
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); %>
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
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 |
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:
Directivas | Descripció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 |
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:
Sintaxis | Descripció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 |
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:
Objeto | Descripción |
---|---|
request | HttpServletRequestEjemplo de clase |
response | HttpServletResponseEjemplo de clase |
out | PrintWriterEjemplo de clase, utilizado para enviar resultados a la página web |
session | HttpSessionEjemplo de clase |
application | ServletContextEjemplo de clase, relacionado con el contexto de aplicación |
config | ServletConfigEjemplo de clase |
pageContext | PageContextEjemplo 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 |
exception | exception Objeto de clase, que representa el objeto de excepción correspondiente a la página JSP que ha producido el error |
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语言定义了以下几个字面量:
布尔值(boolean):true 和 false;
整型(int):与 Java 中的一样;
浮点型(float):与 Java 中的一样;
字符串(string):以单引号或双引号开始和结束;
Null:null。