instrucciones JSP dividen en dos categorías, y compilar el comando operación de la instrucción.
instrucciones de preparación | <% @ Archivo inlcude =”“%> 和 <% @ page 属性 1 属性 2%> 和 <% @ taglib (uri = "tagLibraryURI" | tagdir = "tagDir") prefix = "tagPrefix" %> |
comando de acción | < jsp:include ><jsp:forward><jsp:useBean> |
Un directivas del compilador, JSP
(1 pagina
Es una instrucción para la página actual
propiedades comunes de instrucción pag
propiedad | definiciones |
---|---|
language = "lengua" | El contenedor JSP principal especifica qué idioma usar para compilar la página JSP. JSP estados de especificación 1.2, en la actualidad sólo pueden utilizar el lenguaje Java, pero no descarta futuros aumentos en otros idiomas, como C, C ++, Perl, y así sucesivamente. El valor por defecto es el lenguaje Java |
se extiende = "nombre de la clase base" | La definición principal de esta página JSP generada servlet que hereda la clase padre |
import = "nombre del paquete" | Esta página JSP se define que se puede utilizar bibliotecas de clases de Java |
sesión =”true 或 falsa” | Esta página JSP puede decidir si desea utilizar el objeto de sesión. El valor predeterminado es verdadero |
buffer =”Ninguno Tamaño 或 en kb” | Se determina la secuencia de salida (flujo de salida) si existe un tampón. El búfer predeterminado es de 8 KB |
autoFlush =”true 或 falsa” | Decidir si para amortiguar el flujo de salida para limpiar automáticamente el búfer está lleno sería una excepción (Excepción). El valor predeterminado es verdadero |
isThreadSafe =”true 或 falsa” | Indica al contenedor JSP, si la página JSP puede manejar simultáneamente múltiples peticiones. El valor por defecto es cierto, si este valor se establece en Servlet falsa, escapó generada alcanzará interfaz SingleThreadModel. |
info =”text” | Esta información representa las páginas JSP |
ErrorPage =”error_url” | Representa una excepción si se produce un error, la página será redirigido a la URL especificada |
isErrorPage =”true 或 falsa” | Se indica si esta página JSP se dedica a la manipulación de errores y excepciones páginas |
contentType = “ctinfo” | Se indica el tipo de codificación MIME y las páginas JSP, que actúa método setContentType HttpServletResponse interfaz () |
(2) incluyen
incluyen instrucciones pueden ser incorporados en un fichero externo al archivo actual JSP, JSP al analizar la página comunicado. incluir comandos puede contener tanto la página JSP puede contener texto estático. la sintaxis de comandos de compilación es la siguiente:
<%@ include file="要导入的jsp页面或文本文件" %>
Precauciones incluyen el uso del comando:
(1) Nombre de archivo no puede ser variable dependiente, el siguiente ejemplo es incorrecto :
<%! String url="header.jsp" %>
<%@ include="<%=url %>"
Volver (2) nombre de archivo no puede pasar parámetros, el siguiente ejemplo es incorrecta :
<%@ include file="header.jsp?username=abc" %>
(3) la ruta del archivo es una ruta relativa a este JSP.
(. 3) taglib directiva
taglib directiva de página permite el uso de etiquetas personalizadas.
taglib directiva sintaxis es la siguiente:
<% @ taglib (URI = "tagLibraryURI" | = la tagdir "tagdir") prefijo = "el tagPrefix" %>
directiva taglib tiene tres atributos:
-
s
: Este atributo identifica de forma exclusiva y el prefijo (prefijo) asociado descriptor biblioteca de etiquetas puede ser absoluta o relativa URI. Este URI se utiliza para la localización de la posición descriptor de la biblioteca.
-
tagdir
: Este atributo indica prefijo (prefijo) para ser montado en una etiqueta usada para identificar el / WEB-INF / tags / directorio de archivo o subdirectorio, se utiliza un descriptor de biblioteca de etiquetas implícita.
La conversión de los siguientes tres casos (Traducción) Error:
el valor de la propiedad no es / WEB-INF / tags / start.
Valor de la propiedad no apunta a un directorio que ya existe.
Esta propiedad se utiliza junto con el atributo uri. -
prefijo
: Definir un prefijo: Forma prefijo de cadena tagname, para distinguir una pluralidad de etiquetas personalizadas. Con JSP :, JSPX :, Java :, javax :, servlet :, sol: y sunw: el comienzo del prefijo está reservado. nombre del prefijo debe seguir nombrando los espacios de nombres XML convención. En la especificación JSP 2.0, el prefijo es nulo ilegal
sintaxis directiva de compilación es la siguiente:
<%@ 编译指令名 属性名1="属性值" 属性名2="属性值" ... %>
EG: instrucciones taglib para introducir alguna biblioteca etiqueta específica, la sintaxis:
<%@ taglib prefix="tagPrefix" uri="tagLibraryURI" %>
biblioteca de etiquetas uso puntales: por ejemplo,
<%@ taglib prefix="s" taglib="/struts-tags" %>
comando de acción JSP
1, hacia adelante
Uso <jsp:forward>
formato para <jsp:forward page="filename">
Por ejemplo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="UTF-8"%>
<jsp:forward page = "login.jsp">
<jsp:param value = "zoeng" name = "userName"/>
<jsp:param value = "jikexueyuan" name = "password"/>
</jsp:forward>
fuente login.jsp como sigue:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<%
String userName = request.getParameter("userName");
String password = request.getParameter("password");
out.print(userName);
out.print("<br/>");
out.print(password);
%>
</body>
</html>
Hay algunas cosas que explicar,
<jsp:forward>
Código después no se ejecuta el comando de operación (se puede probar).- Utilizando la página anterior comando de operación de salto, la dirección del navegador o la dirección de salto de página
2, incluir
<Jsp: include>: comprende dinámico
Por ejemplo:
index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<jsp:include page = "header.html"></jsp:include>
<jsp:include page = "body.jsp">
<jsp:param value = "red" name = "bgcolor" />
</jsp:include>
</html>
header.html:
<head>
<meta charset="UTF-8">
<title>include</title>
</head>
body.jsp:
<body bgcolor = "<%= request.getParameter("bgcolor") %>">
</body>
<% @ Include%>: contiene estática
Estático y dinámico incluir una explicación detallada: https://blog.csdn.net/zfl589778/article/details/56494523
Se puede concluir de lo anterior:
Para que comprende estática, <% @% el include>, contenida en el archivo, simplemente encajado en el archivo principal, se convierte a páginas El servlet JSP cuando se monta en el archivo principal, ya que el resultado de la operación se genera sólo un Servlet .
Para dinámico incluir <jsp: incude> , si el archivo incluido es dinámica, se generan dos Servlet, que es también objeto de la archivo incluido compilado motor JSP para generar una ejecución Servlet, llevada a cabo por dos solicitud Servlet y reponse la comunicación. Si el archivo incluido es estático, y luego esta <% @ include> muy similar, sólo generan un servlet, pero no un simple encajado entre ellos, y la comunicación todavía se lleva a cabo mediante la solicitud y Reponse.
3, useBean
el blog de referencia: https://blog.csdn.net/qq_26525215/article/details/52072428
JavaBean es en realidad un seguimiento redacción específica de las clases de Java, sino que debe tener las siguientes características :
1. El constructor de la clase java debe tener un parámetro no se da a conocer
2. La propiedad debe ser privatizada, la clase debe ser pública
3. La privatización de la propiedad debe ser expuesto a otro tipo de programas a través de los métodos públicos y nomenclatura también deben cumplir con ciertas convenciones de nomenclatura --- getXXX y el método setXXX.
La clase tiene un conjunto de atributos y métodos get, que podemos llamar JavaBean. De hecho JavaBean es una clase Java, Java en esta clase formará una regla por defecto - establecer y obtener en la propiedad. Pero por el contrario va a decir ava clase es un JavaBean, esta afirmación es incorrecta, ya que no es necesariamente una clase Java (que no es necesariamente establecer y obtener métodos) para establecer las propiedades y métodos disponibles.
Acceso JavaBean en la sintaxis JSP:
1, una declaración de los JavaBean como - debe utilizar el nombre completo de la clase:
<Jsp: id useBean = clase “someBean” = alcance “package.SomeBean” = “página” />
Correspondiente a la declaración anterior: SomeBean someBean = new SomeBean (); pageContext.setAttribute ( "someBean", someBean);
margen para el valor opcional: página | pedido | sesión | solicitud
Cabe señalar que: En circunstancias normales, nos reservamos el <jsp: useBean /> La sección del cuerpo está vacío, si no está vacío, entonces sólo realizar la inicialización este Bean, como por ejemplo: <jsp: Identificación del useBean = clase "persona" = " cn.Person "> esta es la parte del cuerpo una vez </ jsp durante la inicialización: UserBean>
<jsp:useBean>
marcar:
<Jsp: Identificación del useBean = "nombre" class = "nombre de clase" scope = "página | pedido | sesión | aplicación" />
id: Un ejemplo representativo de un objeto JSP referencias de página por miembros de la clase de objeto, tales como, id = "wq", los miembros WQ () ;.
clase: representante de la clase JavaBean, tales como: class = "com.Test", un paquete de referencia en la clase de prueba com
Alcance: indica el tiempo de supervivencia de JavaBean. El valor predeterminado es ámbito de la página. Cuando una declaración después de Bean y lo puso en una categoría de los usados nuevamente en el mismo rango <jsp:useBean../>
ya no será creado. Pero para darle devuelve una instancia de Bean ha sido creado directamente. Este proceso se puede ver la traducción del código fuente de ese contenedor.
2, de acceso propiedades JavaBean:
<Jsp: setProperty nombre = valor propiedad = “nombre” “someBean” = “Tom” />
<Jsp: getProperty nombre = “someBean” propiedad = “nombre” />
También puede utilizar el código Java en la página de acceder directamente a sus propiedades y otros métodos.
Por ejemplo:
register.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>录入注册信息</title>
</head>
<body>
<form action = "do_register.jsp" method = "post">
用户名:<input type = "text" name = "userName" />
password:<input type = "text" name = "password" />
<input type = "submit" value = "submit" />
</form>
</body>
</html>
do_register.jsp:
<html>
<head>
<meta charset="UTF-8">
<title>处理提交的内容</title>
</head>
<body>
<jsp:useBean id = "user" class = "com.jikexue.jsp.UserEntity" ></jsp:useBean>
<jsp:setProperty property = "userName" name = "user" />
<jsp:setProperty property = "password" name = "user" />
<%
String userName = request.getParameter("userName");
String password = request.getParameter("password");
out.print(userName);
out.print("<br/>");
out.print(password);
%>
<br/>
<jsp:getProperty property="userName" name = "user" />
<jsp:getProperty property="password" name = "user" />
</body>
</html>
<jsp: setproperty> Comentarios
Tomado de: https://blog.csdn.net/IT_COOKIE_SAM/article/details/55518753?locationNum=6&fps=1
jsp: setProperty operación tiene las siguientes cuatro propiedades, como sigue:
propiedad | descripción |
---|---|
nombre | Se requiere que el atributo de nombre. Se comprometió a establecer las propiedades de que Bean. |
propiedad | Se requiere atributo de propiedad. Se indica que la propiedad que desea ajustar. Hay un caso especial: Si el valor de la propiedad es "*" indica los nombres de todos los parámetros de la petición y atributos nombres coincidentes frijol serán pasados al método set atributo correspondiente. |
valor | atributo de valor es opcional. Esta propiedad se utiliza para especificar el valor de la propiedad de un Bean. La cadena de datos mediante métodos estándar en la clase de objetivos valueOf convierte automáticamente a digital, boolean, Boolean, byte, Byte, char, Carácter. Por ejemplo, los valores de propiedad de tipo booleanos y booleanos (tales como "true") por conversión Boolean.valueOf, y los valores de atributo int tipo Integer (como "42") de conversión por Integer.valueOf. El valor de PARAM y no puede ser utilizado, pero cualquiera de ellos puede ser utilizado. |
PARAM | parámetro es opcional. Se especifica qué parámetros como valor del atributo solicitud Bean. Si la petición actual no tiene parámetros, entonces no hacer nada, el sistema no pasa método nula para establecer las propiedades de frijol. Así que usted puede hacer su propio grano de proporcionar valores de atributos por defecto, sólo cuando el parámetro de petición especifica explícitamente un nuevo valor para modificar los valores de las propiedades por defecto. |
getProperty: Obtener la haba de valor de la propiedad y convertirla en una cadena de caracteres, que se inserta en la página.
Jsp: getproperty debe tener dos atributos:
Nombre: representa el nombre del frijol
Propiedad: que representa el valor de un atributo de la extracción.
JSP referencia mencionado en el sol, si se utiliza la etiqueta <jsp: getProperty> para recuperar el valor es nulo, NullPointerException aparecerá entonces al mismo tiempo, si se utiliza el bloque para recuperar su valor o expresión, entonces los navegadores aparece en es null (vacío).