el即Expression Language,用来在jsp页面上显示内容,jstl是JSP Standard Tag Library的缩写,包含多种标签,el和jstl结合使用,页面渲染更方便。


EL内置对象

内置对象 说明
pageScope 获取 page 范围的变量
requestScope 获取 request 范围的变量
sessionScope 获取 session 范围的变量
applicationScope 获取 application 范围的变量
param 相当于 request.getParameter(String name),获取单个参数的值
paramValues 相当于 request.getParameterValues(String name),获取参数集合中的变量值
header 相当于 request.getHeader(String name),获取 HTTP 请求头信息
headerValues 相当于 request.getHeaders(String name),获取 HTTP 请求头数组信息
initParam 相当于 application.getInitParameter(String name),获取 web.xml 文件中的参数值
cookie 相当于 request.getCookies(),获取 cookie 中的值
pageContext 表示当前 JSP 页面的 pageContext 对象

EL 表达式获取 4 种不同范围的属性,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>编程帮(www.biancheng.net)</title>
</head>
<body>
<%
pageContext.setAttribute("info", "page属性范围");
request.setAttribute("info", "request属性范围");
session.setAttribute("info", "session属性范围");
application.setAttribute("info", "application属性范围");
%>
<h2>不同属性范围的值</h2>
<hr />
不指定范围:${info}
<br> page 属性内容:${pageScope.info}
<br> request 属性内容:${requestScope.info}
<br>session 属性内容:${sessionScope.info}
<br>application 属性内容:${applicationScope.info}
</body>
</html>

jstl标签很多,笔记一下我常用到的标签

if

语法:

1
2
3
4
5
<c:if test="${one.name eq 'nick'}">
<tr>
<td>nick</td>
</tr>
</c:if>

c:forEach标签

语法:

1
2
3
<c:forEach item="collection" [var="varname" [varStatus="varstatusName"] [begin="开始"] [end="结束"] [step="step"]]>
Java程序或HTML代码
</c:forEach>
  • items:要被循环的信息,可以是数组、Java 集合等;
  • var:可选项,指定迭代之的别名;

核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:

1
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>