从JSP1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。
Sun公司制定了一套标准标签库,JavaServer Pages Standard Tag Library,简称JSTL
由5个标签库共同组成,分别指定了不同的URI以及建议使用的前缀
Core---------c
I18N----------fmt
SQL----------sql
XML----------x
Functions-----fn
Core是一个核心标签库,它包含了实现Web应用中通用操作的标签。例如,用于输出文本内容的<c:out>标签、用于条件判断的<c:if>标签、用于迭代循环的<c:forEach>标签
I18N是一个国际化/格式化标签库,它包含实现Web应用程序的国际化标签和格式化标签。例如,设置JSP页面的本地信息,设置JSP页面的时区,使时期按照本地格式显示等。
SQL是一个数据库标签库,它包含了用于访问数据库和对数据库中的数据进行操作的标签。例如,从数据库中获得数据库连接,从数据库表中检索数据。
XML是一个操作XML文档的标签库
Functions是一个函数标签库,它提供了一套自定义EL函数,包含了JSP网页制作者经常用到的字符串操作。例如,提取字符串中的子字符串,获取字符串的长度等。
使用JSTL
要用到jstl.jar和standard.jar这两个文件复制到项目的lib目录下。
接下来上代码演示:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<c:out value="Hello World!"></c:out>
</body>
</html>
由于使用的是<c:out>标签,因此,需要使用taglib指令导入Core标签库,代码:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
运行结果
<c:out>标签的escapeXml属性对特殊字符进行转义,该属性可以将特殊的字符进行HTML编码转换后再输出。
上代码,感受下
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head></head>
<body>
<c:out value="${param.username }" escapeXml="true">
<meta http-equiv="refresh" content="0;url=http://www.baidu.com" />
</c:out>
</body>
</html>
escapeXml:true,在JSP页面中输入的<meta>标签便会进行HTML编码转换,最终以字符串的形式出现。
escapeXml:false,在JSP页面中输入的<meta>标签便不会会进行HTML编码转换,修改代码:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=