JSP 指令(directive)影响由 JSP 页面生成的 servlet 的整体结构。
page指令
page 指令允许通过类的导入、servlet 超类的定制、内容类型的设置、以及诸如此类的事物来控制 servlet 的结构。page 指令可以放在文档中的任何地方。
-
page指令常用标签:
-
import
- 导包
-
contentType
- 设置 Content-Type 响应报头,标明即将发送到客户程序的文档的 MIME 类型。
-
pageEncoding
- 字符集
-
session
- 属性控制页面是否参与 HTTP 会话,默认
true
- 属性控制页面是否参与 HTTP 会话,默认
-
isELIgnored(jsp2.0专用)
- 忽略(true)JSP 2.0 表达式语言(EL),还是进行正常的求值(false)。
-
buffer
- 属性指定 out 变量(类型为 JspWriter )使用的缓冲区的大小。
-
autoFlush
- 属性控制当缓冲区充满之后,是应该自动清空输出缓冲区(默认),还是在缓冲区溢出后抛出一个异常(autoFlush="false")。
- 在 buffer="none" 时,false 值是不合法的。
-
info
- 定义一个可以在 servlet 中通过 getServletInfo 方法获取的字符串
-
errorPage
- 用来指定一个 JSP 页面,由该页面来处理当前页面中抛出但未被捕获的任何异常(即类型为 Throwable 的对象)
- 指定的错误页面可以通过 exception 变量访问抛出的异常。
-
isErrorPage
- 表示当前页是否可以作为其他 JSP 页面的错误页面。
-
isThreadSafe
- 控制由 JSP 页面生成的 servlet 是允许并行访问(默认),还是同一时间不允许多个请求访问单个 servlet 实例(isThreadSafe="false")。
- 最近的经验表明 SingleThreadModel 的设计很差,使得它基本土毫无用处。因而,应该避免使用 isThreadSafe,采用显式的同步措施取而代之。
-
language
- 好像目前只能指定java
<%@ page language="java" %>
-
extends
- 指定 JSP 页面所生成的 servlet 的超类(superclass )。
-
用法如下:
<%@page import="java.util.Date"%>
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
现在时间是:
<%=new Date().toLocaleString() %>
</body>
</html>
include指令
include 允许在 JSP 文件转换到 servlet 时,将一个文件插入到 JSP 页面中。include 指令应该放 置在文档中希望插入文件的地方。
<%@ include file="include1.jsp" %>
taglib指令
- 定义自定义的标记标签。
-
uri
唯一确定标签库的位置 -
prefix
标签前缀
<%@ taglib uri="taglibURL" prefix="jty" %>
JSP动作指令
JSP动作指令是一种特殊标签,利用xml语法格式的标签来控制jsp引擎的行为,影响jsp运行时的功能。
语法格式如下:
以<jsp:
开头,/>
结束,中间是指令动作。
主要的JSP动作 | 说明 |
---|---|
<jsp:include> |
用于在客户端请求时间内把动态或静态资源包含在jsp页面内(组合jsp) |
<jsp:forward> |
用来将请求转发到其他jsp、Servlet或静态资源文件(控制网页重定向) |
<jsp:param> |
用来给其他标签提供参数 |
<jsp:useBean> |
使用一个JavaBean实例,并声明名字和作用范围 |
<jsp:setProperty> |
用来给JavaBean设置属性,就是调用set方法来完成n个属性(n>0) |
<jsp:getProperty> |
得到JavaBean属性,转为String类型然后发送到输出流 |
<!--空标签形式-->
<jsp:include flush="true" page="include1.jsp"/>
<!--体标签形式-->
<jsp:include flush="true" page="include1.jsp">
<jsp:param value="123" name="num"/>
</jsp:include>
概括
- page指令
是针对当前页面的指令 - include指令
用于指定包含另一个页面 - taglib指令
用于定义和访问自定义标签 - JSP动作指令 影响jsp运行时功能