JSP标准标记库(JSP Standard Tag Library,JSTL)是一个实现Web应用程序中常见的通用功能的定制标记库,这些功能包括迭代和条件判断 数据管理格式化 XML操作及数据库访问等 只需要jstl.jar standard.jar就可以使用JSTL了
EL:是JSP2.0的一个主要的组件,在JSTL中被广泛使用
语法: 以"${"开始"}"结束,通过"."或"[]"来存取数据
EL隐含对象
JSP页面 pageContext 代表此JSP页面的pageContext对象
作用范围 pageScope 用于读取page范围内的属性值
requestScope 用于读取request范围内的属性值
sessionScope 用于读取session范围内的属性值
applicationScope 用于读取applicationScope范围内的属性值
请求参数 param 用于读取请求参数中的参数值等同JSP中的request.getParameter(String name)
paramValues 用于读取请求参数中的参数值数组,等同JSP中的request.getParameterValues(String name)
请求头 header 用于取得指定请求头的值等同JSP中的request.getHeader(String name)
headerValues 用于取得指定请求头的值数组等同JSP中的request.getHeaders(String name)
Cookie cookie 用于取得request中的cookie集等同JSP中的request.getCookies()
初始化参数 initParam 用于取得Web应用程序上下文初始化参数值等同JSP中的: application.getInitParameter(String name)
用法举例:
当前SessionID为: ${pageContext.session.id}
当前请求协议为: ${pageContext.request.protocol}
请求参数name的值为: ${param["name"]}
当前Host为: ${header.Host}
核心标签库:
核心标签库(Cor)主要为基本输入输出 流程控制 迭代操作和URL操作提供了定制标签.凡是要乃至核心标签库的JSP页面,均要使用<%@ taglib %>指令设定prefix和uri的值
例:<%@ taglib prefix="c" uri="http:java.sun.com/jsp/jstl/core"%>
1.<c:set>标签的用法
功能: 用于在JSP中保存数据
语法: <c:set value="value" var="varName" [scope="{page|request|session|application}"]/>
需要保存的值 变量名 变量的作用范围
<c:set value="value" target="target" property="propertyName"/>
需要保存的值 目标对象名,如JavaBean或Map对象 指定对象的属性名
2.<c:out>标签的用法
功能:用于在JSP中显示数据
语法: <c:out value="value" [escapeXml="{true|false}"][default="defauleValue"]/>
需要显示的值 是否需要进行特殊字符的转换 当value为null时输出此值
3.<c:remove>标签的用法
功能:用于在JSP中移除变量
语法: <c:remove var="varName" [scope="{page|request|session|application}"]/>
变量名 变量的作用范围
4.<c:catch>标签的用法
功能:用于在JSP中捕获异常,并将异常信息保存于指定的变量中
语法: <c:catch [var="varName"]>
需要捕获异常的代码段
</c:catch>
5.<c:if>标签的用法
功能:用于在JSP中进行条件判断的流程控制,作用与if一样
语法: <c:if test="testCondition" [var ="varName"] [scope="{page|request|session|application}"]> //test条件表达式 var存放条件表达式值的变量 scope var变量的作用范围
满足条件时将执行的代码段
</c:if>
6.<c:choose> <c:when>和<c:otherwise>标签的用法
功能:<c:choose> <c:when> <c:otherwise>配套使用在JSP中进行条件分支的流程控制. 其中<c:when> <c:otherwise>必须放置在在<c:choose>标签内,而且<c:when>必须位于<c:otherwise>之前 每个<c:when>标签代表一个条件分支,当所有条件都不满足时将执行<c:otherwise>标签体中的代码
语法: <c:choose>
<c:when test="${condition1}"> 条件一表达式1
条件表达式1为真时将要被执行的代码段
</c:when>
<c:when test="${condition2}"> 条件表达式2
条件表达式2为真进将要被执行的代码段
</c:when>
<c:otherwise>
当所有条件均不满足时将要被执行的代码段
</c:otherwise>
</c:choose>
7.<c:forEach>标签的用法
功能:用于在JSP中进行循环控制,当条件成立时循环执行<c:forEach>标签体中的代码段,常用于遍历集合对象中的成员
语法1:遍历集合对象中的成员
<c:forEach items="collection" 将被遍历的集合对象
begin="begin" 开始的位置,必须大于或等于0
end="end" 结束的位置,默认为最后一个成员
[step="step"] 每次循环的增量值(步长值),默认为1
[var="varName"] 指向当前成员的引用(变量名)
[varStatus="varStatusName"]> 存放当前成员相关信息的变量,该就是常用的4个属性为:
index: 当前成员的索引值
count: 共议问过的成员总数
当条件满足时被循环执行的代码段 first: 当前成员是否为第一个成员
last: 当前成员是否为最后一个成员
</c:forEach>
语法2:循环指定次数
<c:forEach begin="begin" 开始的位置,必须大于或等于0
end="end" 结束的位置,默认为最后一个成员
[step="step"] 每次循环的增量值(步长值),默认为1
[var="varName"] 指向当前成员的引用(变量名)
[varStatus="varStatusName"] 存放当前成员相关信息的变量,该变量常用的4个属性为:
index: 当前成员的索引值
count: 共访问过的成员总数
当条件满足时被循环执行的代码段 first: 当前成员是否为第一个变量
last: 当前成员是否为最后一个成员
</c:forEach>
8.<c:forTokens>标签的用法
功能:用于在JSP中遍历一个字符串中所有由定义符号(delimiters)所分隔的成员,当条件成立时循环执行<c:forTokens>标签体中的代码段
语法:
<c:forTokens items="stringOfTokens" 将被遍历的字符串
delims="delimiters" 用做分割符的字符串
begin="begin" 开始的位置,必须大于或等于0
end="end" 结束的位置,默认为最后一个成员
[step="step"] 每次循环的增量值(步长值),默认为1
[var="varName"] 指向当前成员的引用(变量名)
[varStatus="varStatusName"] 存放当前成员相关信息的变量,该变量常用的4个属性为:
index: 当前成员的索引值
count: 共访问过的成员总数
当条件满足时被循环执行的代码段
</c:forTokens>
9.<c:import>标签的用法
功能:用于将一个静态或动态文件包含到该JSP网页中,所包含的对象不再局限于本Web应用程序,其他Web应用程序中的文件或FTP资源同样可以包含进来
语法1:包含文件时不传递请求参数
<c:import url="url" 被包含文件的访问地址
[context="context"] 包含同一个容器上的其它应用程序中的文件,以/开头
[var="varName"] 存放被包含文件内容的变量
[scope="{page|request|session|application}"] var变量的作用范围
[charEncoding="charEncoding"]/> 包含文件内容的编码格式
语法2:包含文件时传递请求参数
<c:import url="url" 被包含文件的访问地址
[context="context"] 包含同一个容器上的其它应用程序中的文件,以/开头
[var="varName"] 存放被包含文件内容的变量
[scope="page|request|session|application"] var变量的作用范围
[charEncoding="charEncoding"]> 包含文件内容的编码格式
<c:param name="paramName" value="paraValue"/>
请求参数的名称 请求参数的值
10.<c:url>标签的用法
功能:在JSP网页中产生一个URL
语法1:产生不传递请求参数的URL
<c:url value="url" 用于生成URL的URL
[context="context"] 同一个容器上的其它应用程序中的URL资源,以/开头
[var="varName"] 存放生成的URL内容的变量
[scope="{page|request|session|application}"]/> var变量的作用范围
语法2:产生传递请求参数的URL
<c:url value="url" 用于生成URL的URL
[context="context"] 同一个容器上的其它应用程序中URL资源,以/开头
[var="varName"] 存放生成的URL内容的变量
[scope="{page|request|session|application}"]/> var变量的作用范围
<c:param name="paraName" value="pageValue">
请求参数的名称 请求参数的值
</c:url>