JSP语法及JSTL标签

JSP语法

脚本程序

脚本程序可以包含任意数量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

<% 代码 %>

或者

<jsp:scriptlet>
	代码
<jsp:scriptlet>

脚本声明

可以声明一个或多个变量、方法,供后面的Java代码使用。

<%! 声明内容 %>

或者

<jsp:declaratiuon>
	声明内容
<jsp:declaratiuon>

JSP表达式:JSP表达式先被转化为String,然后插入到表达式出现的位置。

<%= 表达式 %>

或者

<jsp:expression>
   表达式
</jsp:expression>

JSP注释

<%-- 注释 --%>	JSP注释,注释内容不会被发送至浏览器甚至不会被编译
<!-- 注释 -->		HTML注释,通过浏览器查看网页源代码时可以看见注释内容

JSP指令:用来设置与整个JSP页面相关的属性

语法格式
<%@ directive attribute="value" %>

<%@ page ... %>					定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@include file="fileName"%>	包含其他文件
<%@taglib prefix=""%>			引入标签库的定义,可以是自定义标签

Page指令相关属性;

属性 描述
buffer 指定out对象使用缓冲区的大小
autoFlush 控制out对象的 缓存区
contentType 指定当前JSP页面的MIME类型和字符编码
errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends 指定servlet从哪一个类继承
import 导入要使用的Java类
info 定义JSP页面的描述信息
isThreadSafe 指定对JSP页面的访问是否为线程安全
language 定义JSP页面所用的脚本语言,默认是Java
session 指定JSP页面是否使用session
isELIgnored 指定是否执行EL表达式

JSP行为

语法格式
<jsp:action_name attribute="value" />

jsp:include		用于在当前页面中包含静态或动态资源
jsp:useBean		寻找和初始化一个JavaBean组件
jsp:setProperty	设置 JavaBean组件的值
jsp:getProperty	将 JavaBean组件的值插入到 output中
jsp:forward		从一个JSP文件向另一个文件传递一个包含用户请求的request对象
jsp:plugin		用于在生成的HTML页面中包含Applet和JavaBean对象
jsp:element		动态创建一个XML元素
jsp:attribute	定义动态创建的XML元素的属性
jsp:body		定义动态创建的XML元素的主体
jsp:text		用于封装模板数据

JSP隐含对象

equest			HttpServletRequest类的实例
response		HttpServletResponse类的实例
out				PrintWriter类的实例,用于把结果输出至网页上
session			HttpSession类的实例
application		ServletContext类的实例,与应用上下文有关
config			ServletConfig类的实例
pageContext		PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page			类似于Java类中的this关键字
exception		exception 类的对象,代表发生错误的 JSP 页面中对应的异常对象

JSP核心标签库JSTL

maven中引入两个依赖包

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

核心标签

在jsp文件中引入JSTL核心标签的语法
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:out>			用于在JSP中显示数据,就像<%= ... >
<c:set>			用于保存数据
<c:remove>		用于删除数据
<c:catch>		用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if>			与我们在一般程序中用的if一样
<c:choose>		本身只当做<c:when>和<c:otherwise>的父标签
<c:when>		<c:choose>的子标签,用来判断条件是否成立
<c:otherwise>	<c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>		检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach>		基础迭代标签,接受多种集合类型
<c:forTokens>	根据指定的分隔符来分隔内容并迭代输出
<c:param>		用来给包含或重定向的页面传递参数
<c:redirect>	重定向至一个新的URL.
<c:url>			使用可选的查询参数来创造一个URL

格式化标签

引入格式化标签
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<fmt:formatNumber>		使用指定的格式或精度格式化数字
<fmt:parseNumber>		解析一个代表着数字,货币或百分比的字符串
<fmt:formatDate>		使用指定的风格或模式格式化日期和时间
<fmt:parseDate>			解析一个代表着日期或时间的字符串
<fmt:bundle>			绑定资源
<fmt:setLocale>			指定地区
<fmt:setBundle>			绑定资源
<fmt:timeZone>			指定时区
<fmt:setTimeZone>		指定时区
<fmt:message>			显示资源配置文件信息
<fmt:requestEncoding>	设置request的字符编码

SQL标签

引入SQL标签
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<sql:setDataSource>	指定数据源
<sql:query>			运行SQL查询语句
<sql:update>		运行SQL更新语句
<sql:param>			将SQL语句中的参数设为指定值
<sql:dateParam>		将SQL语句中的日期参数设为指定的java.util.Date 对象值
<sql:transaction>	在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行

XML标签

引入XML标签
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

<x:out>			与<%= ... >,类似,不过只用于XPath表达式
<x:parse>		解析 XML 数据
<x:set>			设置XPath表达式
<x:if>			判断XPath表达式,若为真,则执行本体中的内容,否则跳过本体
<x:forEach>		迭代XML文档中的节点
<x:choose>		<x:when>和<x:otherwise>的父标签
<x:when>		<x:choose>的子标签,用来进行条件判断
<x:otherwise>	<x:choose>的子标签,当<x:when>判断为false时被执行
<x:transform>	将XSL转换应用在XML文档中
<x:param>		与<x:transform>共同使用,用于设置XSL样式表

JSTL函数

引入JSTL函数
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

fn:contains()		测试输入的字符串是否包含指定的子串
fn:containsIgnoreCase()	测试输入的字符串是否包含指定的子串,大小写不敏感
fn:endsWith()		测试输入的字符串是否以指定的后缀结尾
fn:escapeXml()		跳过可以作为XML标记的字符
fn:indexOf()		返回指定字符串在输入字符串中出现的位置
fn:join()			将数组中的元素合成一个字符串然后输出
fn:length()			返回字符串长度
fn:replace()		将输入字符串中指定的位置替换为指定的字符串然后返回
fn:split()			将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回
fn:startsWith()		测试输入字符串是否以指定的前缀开始
fn:substring()		返回字符串的子集
fn:substringAfter()	返回字符串在指定子串之后的子集
fn:substringBefore()返回字符串在指定子串之前的子集
fn:toLowerCase()	将字符串中的字符转为小写
fn:toUpperCase()	将字符串中的字符转为大写
fn:trim()			移除首尾的空白符
上一篇:JavaWeb——EL及JSTL学习总结


下一篇:JSP 简明教程