JSP, expresión EL, JSTL

Concepto JSP

JSP: página del servidor Java ----- página del servidor java, la página que se ejecuta en el lado del servidor es analizada por el contenedor web en HTML estático y enviada al navegador, y luego analizada por el navegador. La página HTML que vemos en el navegador es en realidad el resultado de la ejecución de JSP en el servidor.

Ventajas de JSP en relación con HTML y Servlet

tecnología Características
HTML Excelente: se utiliza para la visualización de páginas web, es fácil de escribir código JavaScript y estilos CSS.
Falta: no se puede escribir contenido dinámico
Servlet Falta: escribo código Java, no es conveniente escribir estilos JavaScript y CSS.
Excelente: capaz de escribir contenido dinámico y acceder a la base de datos
JSP JSP = HTML + Servlet hereda las ventajas de las dos tecnologías. Puede escribir contenido dinámico, pero también facilitar el embellecimiento de la página.

La relación entre JSP y Servlet

JSP es un servlet
JSP es traducido a un servlet por el servidor y luego compilado en un archivo de clase.
Cuando un usuario visita esta JSP por primera vez, el servlet se genera solo una vez.

Tres anotaciones de JSP

Tres tipos de anotaciones en JSP Descripción
HTML <! - Comentar -> Solo se puede comentar contenido estático
Java Los tres tipos de comentarios están disponibles
// línea única
/ * líneas múltiples /
/
* comentarios de documentos * / comentarios
solo para código Java
JSP <% - Comentario -%>
  1. Comentarios HTML: visibles en el código fuente de la página web
  2. Nota de Java: visible en el servlet traducido
  3. Nota JSP: no visible en páginas web y servlets

Tres tipos de elementos de script de JSP

componente Características gramática
Fragmento de código JSP Escribir código general de Java <%%>
Expresión de script JSP Muestra el valor de una variable o expresión <% =%>
Declaración JSP Declarar variables o métodos globales <%! %>

Objeto de alcance integrado de JSP

pageContext 、 solicitud 、 sesión 、 aplicación 、

El papel de las expresiones EL

  1. Valor en el alcance de la salida
  2. Utilizado para varios cálculos de operador

La diferencia entre expresión EL y expresión EL

EL: Lenguaje de expresión Lenguaje de expresión

la diferencia Expresión JSP Expresión EL
gramática <% = variable de secuencia de comandos%> $ {Clave en alcance}
Dónde generar el valor Salida del valor de una variable de secuencia de comandos de Java Valor en el alcance, siempre que la clave y el valor se deben colocar primero en el alcance

Métodos y escritos relacionados con los dominios de página.

void setAttribute(String key,Object value)				//向页面域中添加键和值
Object setAttribute(String key)							//向页面域中取出指定的值
void removeAttribute(String key);						// 删除所有域中同名的值
void removeAttribute(String key,int scope);				// 删除指定域的值
Object findAttribute(String key);						//从小到大的范围去查找作用域同名的值,找到就不找了,找不到则返回null

Escritura EL:

Alcance Cómo escribir EL
Dominio de la página $ {pageScope.key}
Solicitar dominio $ {requestScope. 键}
Dominio de la sesión $ {sessionScope. 键}
Contexto superior e inferior $ {applicationScope. 键}
Busqueda automatica $ {clave}

Ejemplos de métodos relacionados con dominios de página:

<body>
<%
    // 向四个作用域中添加键值对
    pageContext.setAttribute("name","页面域");
    request.setAttribute("name","请求域");
    session.setAttribute("name","会话域");
    application.setAttribute("name","上下文域");
%>
得到页面域的值:<%=pageContext.getAttribute("name")%><br/>
得到请求域的值:<%=request.getAttribute("name")%><br/>
得到会话域的值:<%=session.getAttribute("name")%><br/>
得到上下文域的值:<%=application.getAttribute("name")%><br/>

<%
    //pageContext.removeAttribute("name");// 删除所有域中同名的值
    pageContext.removeAttribute("name",PageContext.PAGE_SCOPE);// 删除指定域的值
%>
<h2>删除后</h2>
得到页面域的值:<%=pageContext.getAttribute("name")%><br/>
得到请求域的值:<%=request.getAttribute("name")%><br/>
得到会话域的值:<%=session.getAttribute("name")%><br/>
得到上下文域的值:<%=application.getAttribute("name")%><br/>

从小到大的范围去查找作用域同名的值,找到就不找了:<%=pageContext.findAttribute("name")%><br/>


<h2>使用el表达式取出作用域的值</h2>
页面域:${pageScope.name}<br/>
请求域:${requestScope.name}<br/>
会话域:${sessionScope.name}<br/>
上下文域:${applicationScope.name}<br/>
自动查找:${name}<br/>
</body>

resultado:
Inserte la descripción de la imagen aquí

Utilice EL para extraer diferentes tipos de datos del campo

tipo de datos Escritura
Propiedades en JavaBean $ {object.attribute}
Lista $ {lista [índice]}
Formación $ {matriz [índice]}
Colección de mapas $ {map.key} o $ {map ["key"]}

Operador EL

Operadores aritméticos: +, -, *, /,%
Operadores de comparación: ==,! =, <,>, <=,> =
Operadores lógicos: &&, ||
,! Operadores ternarios: $ {condición Expresión? Valor verdadero: valor falso)

Los anteriores son los mismos que los de Java;

Operador nulo:

Sintaxis: $ { clave vacía }
1. Determine si la clave es NULL y devuelva verdadero si está vacía
2. Si la clave es una cadena vacía, también devuelve verdadero
3. Si la clave es una colección y no hay elementos en la colección, devuelve verdadero

Concepto JSTL

JSTL (JSP Standard Tag Library, JSP Standard Tag Library) es una biblioteca de etiquetas JSP de código abierto que mejora constantemente. Podemos escribir varias etiquetas en la página JSP para completar algunas funciones complejas. Su propósito es reducir la cantidad de código Java en la página JSP y hacer que la página JSP se mantenga mejor . Su capa inferior esencialmente ejecuta código Java .

Biblioteca de etiquetas personalizadas JSTL

  1. core: biblioteca de etiquetas del núcleo, utilizada para el control de flujo del código en la página. Tales como: si, para
  2. formato: etiquetas internacionalizadas y formateadas, que pueden formatear números como fechas y monedas. También puede realizar operaciones internacionales en la misma página.
  3. xml: analizar archivos XML directamente en JSP
  4. sql: el acceso directo a la base de datos en JSP no se ajusta a la arquitectura de tres niveles. Capa de presentación -> capa empresarial -> capa de acceso a datos
  5. función: utiliza varias funciones en JSP, funciones de cadena

Utilice etiquetas principales

instrucción taglib: se utiliza para usar la biblioteca de etiquetas en la página JSP

  1. Biblioteca de etiquetas de núcleo: núcleo, rol: utilizado para el control de flujo de código
  2. Sintaxis para usar etiquetas: <c: nombre de etiqueta>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL prefijo Signo de URI efecto
Biblioteca de etiquetas principales C Esta etiqueta es una identificación única, escritura fija Para el control de flujo del código en la página.

Etiquetas JSTL: etiquetas if

La etiqueta if de jsp no tiene más

<c:if test="${param.age >=18 }">
    你已经成年,可以访问本网站<br/>
    <a href="https://blog.csdn.net/RookiexiaoMu_a">点开有惊喜</a>
</c:if>

Etiquetas JSTL: elija etiqueta

Inserte la descripción de la imagen aquí

<form action="demo08.jsp" method="get">
    请输入分数:
    <input type="text" name="score" value="${param.score}">
    <input type="submit" value="评级">
</form>
<c:choose>
    <%--test是一个判断条件,使用EL--%>
    <c:when test="${param.score >=80 && param.score<=100}">
        优秀
    </c:when>
    <c:when test="${param.score >=60 && param.score<80}">
        及格
    </c:when>
    <c:when test="${param.score >=0 && param.score<60}">
        不及格
    </c:when>
    <c:otherwise>
        <script>
            alert("分数有误");
        </script>
    </c:otherwise>
</c:choose>
</body>

Etiqueta JSTL: para cada etiqueta

Debido a que EL no tiene la función transversal, use la etiqueta forEach para recorrer la colección o matriz en el
Inserte la descripción de la imagen aquí
alcance. Propiedad VarStatus : La propiedad varStatus es un objeto y también tiene propiedades:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/RookiexiaoMu_a/article/details/89388562
Recomendado
Clasificación