JavaWeb Notas de Estudio 5: JSP y JSTL

1-Introducción JSP

JSP - Java del servidor Página
 desde el punto de vista del usuario, es una página normal
 de programadores punto de vista, es una clase Java, heredó un servlet, se puede decir que una JSP Servelt

¿Por qué debería JSP?

En la mayoría de las circunstancias HTML que se utiliza para mostrar el contenido estático, inmutable. Pero a veces necesitamos mostrar algunos datos dinámicos en una página Web
, tales como: consulta toda la información del estudiante, de acuerdo con el nombre del estudiante a una consulta específica. Estas acciones deben consultar la base de datos y luego se muestran en la página. html No se admite la escritura de código java, pero se puede escribir dentro de JSP.

JSP tres instrucciones:
1、page 2、include 3、taglib
JSP nueve objetos incorporados:
1、request 2、session 3、response
4、out 5、aplication 6、config
7、jspcontext 8、exception 9、page

Directiva 2-página JSP

<% @ Nombre del comando%> que puede proporcionar algunas de las propiedades de la página JSP

  • idioma
    表明jsp页面中可以写java代码
  • tipo de contenido
    表明这个文件是什么类型,告诉浏览器我是什么内容类型,以及使用什么编码
    contentType="text/html; charset=UTF-8" text/html MIMEType 这是一个文本,html网页
  • pageEncoding
    jsp内容所使用的编码
  • se extiende
    用于指定jsp翻译成java文件后,继承的父类是谁,一般不用改
  • importar
    导包使用的,一般不用手写
  • sesión
    值可选的有true or false
    用于控制在这个jsp页面里面,是否能够直接使用session对象
    如果该值是true,那么在代码里面会有getSession()的调用
    如果该值是false,那么就不会有该方法调用,也就是没有session对象
  • ErrorPage
    指的是错误的页面,值需要给错误的页面路径
  • isErrorPage
    上面的errorPage 用于指定错误的时候跑到哪一个页面去,那么这个isErroPage就是声明某一个页面到底是不是错误的页面
operación de la instrucción común 3-JSP tag
  • taglib
    <%@ taglib prefix="" uri=""%>
    uri: ruta de la biblioteca etiqueta, prefijo: biblioteca de etiquetas alias
  • incluir
    <%@ include file="other02.jsp"%>
    detalles detrás: de hecho, todo el contenido de otra página de la producción para hacerse cargo de reunir todos los elementos de la etiqueta se incluyen en, por lo que un poco de distensión
  • jsp: include
    <jsp:include page="other02.jsp"></jsp:include>
    contiene la página especificada, aquí es el incluido de forma dinámica. Eso no es la ficha de página contiene todos los elementos para hacerse cargo de toda la producción, pero para hacerse cargo de sus resultados operativos
  • jsp: forward
    <jsp:forward page=""></jsp:forward>
    a la página designada, la implementación interna del código está siendo realizada por el servlet:
    <% 
    	//请求转发
    	request.getRequestDispatcher("other02.jsp").forward(request, response);
    %>
    
  • param: JSP
    medios: Cuando una página que contiene o unirse a este parámetro cuando el salto a una página
    <jsp:forward page="other02.jsp">
    	<jsp:param value="beijing" name="address"/>
    </jsp:forward>
    
    在other02.jsp中获取参数:
    <br>收到的参数是:<br>	<%= request.getParameter("address")%>
    
4-JSP objetos incorporados (cuatro ámbitos)

Los llamados objetos incorporados que podemos utilizar directamente en la página JSP, estos objetos no crean, específicamente en cuatro:
pageContext, Solicitud, la sesión, la Solicitud

  • alcance
    表示这些对象可以存值,他们的取值范围有限定
    //分别存储不同作用域数据
    <%
    	pageContext.setAttribute("name", "page");
    	request.setAttribute("name", "request");
    	session.setAttribute("name", "session");
    	application.setAttribute("name", "application");
    %>
    //取出四个作用域中的值
    <%=pageContext.getAttribute("name")%>
    <%=request.getAttribute("name")%>
    <%=session.getAttribute("name")%>
    <%=application.getAttribute("name")%>
    
    Alcance Campo de medidas:
     pageContext - visualización de la página actual
     solicitud - retransmitir la solicitud a la visualización de
     la sesión - Pantalla de redirección de
     aplicación - antes de que se cierre la caída de servidor

Cuatro ámbitos diferencia:

  1. pageContext PageContext []
    > alcance se limita a la página actual
    > También puede llegar a ocho otros objetos incorporados
  2. HttpServletRequest solicitud []
    > alcance está limitado a la primera solicitud, siempre que el servidor responde a la solicitud, el valor almacenado en el dominio, hay no es
  3. HttpSession sesión] [
    > ámbito para una sesión (solicitud múltiple y respuesta), que
  4. ServletContext [aplicación]
    > Todo el proyecto se puede acceder al servidor no se puede apagar después de una visita

El resto de los objetos incorporados:

  • 【】 cabo JspWriter
  • 【】 respuesta HttpServletResponse
  • 【】 excepción Throwable
  • página [Objeto] - esto es una instancia de un objeto JSP traducido en clase Java
  • config 【】 ServletConfig
expresión 5-EL (un valor de uso)

1, toma un valor almacenado en el alcance 4

<%
	pageContext.setAttribute("name", "page");
	request.setAttribute("name", "request");
	session.setAttribute("name", "session");
	application.setAttribute("name", "application");
%>
<br>按普通手段取值<br>
<%= pageContext.getAttribute("name")%>
<%= request.getAttribute("name")%>
<%= session.getAttribute("name")%>
<%= application.getAttribute("name")%>

<br>使用EL表达式取出作用域中的值<br>
${ pageScope.name }
${ requestScope.name }
${ sessionScope.name }
${ applicationScope.name }

2, si el campo se almacena en una matriz

<%
	String [] a = {"aa","bb","cc","dd"};
	pageContext.setAttribute("array", a);
%>
<br>使用EL表达式取出作用域中数组的值<br>
${array[0]},${array[1]},${array[2]},${array[3]}

3, dominio de si la retención es conjunto

<%
	List li = new ArrayList();
	li.add("nihao");
	li.add("i,m");
	li.add("List");
%>
<br>使用EL表达式取出作用域中集合的值<br>
${li[0]},${li[1]},${li[2]}

4, tiene un conjunto de valores mapa

<%
	Map map = new HashMap();
	map.put("name", "zhangsna");
	map.put("age",18);
	map.put("address","北京..");
	map.put("address.aa","深圳..");
	pageContext.setAttribute("map", map);
%>
<br>使用EL表达式取出作用域中Map的值<br>
${map.name},${map.age},${map.address},${map["address.aa"]}
6-EL expresión (uso de dos valores)

: Detalles Valor
valor 1, el valor del dominio, primero debe almacenada

<%
//pageContext.setAttribute("name", "zhangsan");
session.setAttribute("name", "lisi...");
%>
<br>直接指定说了,到这个作用域里面去找这个name<br>
${ pageScope.name } 
<br>//先从page里面找,没有再去request、session、application找 <br>
${ name }
<br>指定从session中取值<br>
${ sessionScope.name }  

2, el valor de la forma
Si este valor es bajo el objetivo, entonces el uso directo []

<%
	String[] array = {"aa","bb","cc"}
	session.setAttribute("array",array);
%>
${ array[1] } --> 这里array说的是attribute的name

Si no hay ningún índice, que se utiliza directamente. La manera de conseguir

<%
	User user = new User("zhangsan",18);
	session.setAttribute("u", user);
%>
${ u.name }  , ${ u.age } 

注意:一般使用EL表达式,用的比较多的,都是从一个对象中取出它的属性值,比如取出某一个学生的姓名

expresiones EL objetos integrados:

$ {Nombre del objeto. Los miembros}
pageContext, PageScope, requestScope
sessionScope, applicationScope, encabezado
headerValues, PARAM, paramValues, la cookie, initParam

7-JTSL uso básico

EL no atraviesan la obra, sólo puede ser capaz valor JSTL dicho trabajo
JSTL: JSP Standard Tag Library - JSP Standard Tag Library
simplifica la codificación JSP Reemplazar <%%> escritura, que se utiliza generalmente con una expresión EL uso
JSTL introdujo métodos:
1, archivos jar de soporte JSTL importación jstl.jar y standard.jar
2, utilizado en la biblioteca de códigos página taglib introducido la versión 1.0 no admite expresiones eL, la introducción de la versión 1.1
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSTL常用方法:
1, <c: set> </ c: set>
2, <c: si la prueba = ""> </ c: if>
3, <c: forEach> </ c: forEach>

  • c: conjunto

    <!-- 声明一个对象name,对象的值zhangsan,存储到了page(默认),指定是session -->
    <c:set var="name" value="zhangsan" scope="session"></c:set>
    ${sessionScope.name}
    
  • c: si

    //判断test里面的表达式是否满足,如果满足,就执行c:if标签中的输出,c:if 是没有else的
    <c:set var="age" value="18" ></c:set>
    <c:if test="${ age > 26 }">
    	年龄大于了26...
    </c:if>
    <c:if test="${ age <= 26 }">
    	年龄小于了26...
    </c:if>
    ------------------------------
    //定义一个变量名 flag  去接收前面表达式的值,然后存在session域中
    <c:if test="${ age > 26 }" var="flag" scope="session">
    	年龄大于了26...
    </c:if>
    
  • c: forEach

//从1开始遍历到10,得到的结果,赋值给i,并且会存储到page域中,step增幅为2
step增幅为2的意思是:1 3 5 7 9,即输出间隔为2
<c:forEach begin="1" end="10" var="i" step="2">
	${i }
</c:forEach>
-----------------------------------------------
<!-- items : 表示遍历哪一个对象,注意,这里必须写EL表达式
	var: 遍历出来的每一个元素用user 去接收 -->
<c:forEach var="user" items="${list }">
	${user.name } ----${user.age }
</c:forEach>
8- caso integrado: sistema de gestión de los estudiantes (*)

Debido a que una gran cantidad de contenido, se puede ver en un blog escrito antes: Proyecto Web - Sistema de Gestión de Estudiantes

HPF- auto-Resumen

  Objetos incorporados Usted sabe, las expresiones EL para ser utilizados, JSTL de dominar.
  Los errores y mejorar el sistema de gestión de los estudiantes ha durado mucho tiempo, por lo que se recuerda vagamente la idea.
  --- paso corto, a mil millas; no pequeñas corrientes en un poderoso torrente.

Publicado 15 artículos originales · alabanza ganado 18 · vistas 4574

Supongo que te gusta

Origin blog.csdn.net/oZuoShen123/article/details/105150610
Recomendado
Clasificación