指令用来描述JSP文件转换成JSP服务器所能执行的Java代码时使用的控制信息,用于指定整个JSP页面的相关信息,并设置JSP页面的相关属性。
常用的JSP指令有page指令、include指令和taglib指令。
1.page指令
2.include指令
3.taglib指令
page指令
page指令用来定义JSP文件中的全局属性,它描述了与页面相关的一些信息,其作用域被它所在的JSP页面和其包含的文件。页面指令一般位于JSP页面的顶端,但是可以放在JSP页面的任何位置,无论把<%@ page%>指令放在JSP文件中的哪个地方,它的作用范围都是整个JSP页面。考虑JSP程序的可读性以及良好的编程习惯,建议放在JSP文件的顶部。
在同一个JSP页面中可以有多个page指令。在使用多个page指令时,其属性除import外只能使用一次。
page指令的语法格式如下:
<%@page
[language="java"]
[extends="package.class"]
[import="{package.class|package.*},..."]
[session="true|false"]
[buffer="none|8KB|sizeKB"]
[autoFlush="true|false"]
[isThreadSafe="true|false"]
[info="text"]
[errorPage="relativeURL"]
[contentType="mimeType[;charset=characterSet]"]
[pageEncoding="pageEncoding"]
[isErrorPage="true|false"]
%>
1.language属性
language属性用于指定JSP页面中使用的脚本语言,其默认值为Java。
2.extends属性
extends属性用于指定JSP编译器父类的完整限定名,此JSP页面产生的Servlet将由该父类扩展而来。
一般建议不要使用extends属性。JSP容器可以提供专用的高性能父类,如果指定父类,可能会限制JSP容器本身具有的能力。
3.import属性
import属性用于导入JSP页面使用Java API类库。import属性是所有page属性中唯一可以多次设置的属性,用来指定JSP页面中所用到的类。
4.session属性
session属性用于指定是否可以使用session对象,若允许页面参与HTTP会话,就设置为true,否则设为false,其默认值为true。
5.buffer属性
buffer属性用于设定页面的缓冲区大小,属性值为none时表示禁用缓冲区,其默认值为8KB。
6.autoFlush属性
autoFlush属性用于指定JSP页面缓冲区是否自动刷新,其默认值为true。如果该属性设置为true,则页面缓冲区满时自动刷新输出;否则,当页面缓冲区满时抛出一个异常。
7.isThreadSafe属性
isThreadSafe属性用于指定JSP页面是否能够处理一个以上的请求,如果为true,则该页面可能同时收到JSP引擎发出的多个请求;反之,JSP引擎会对收到的请求进行排队,当前页面在同一时刻只能处理一个请求。
8.info属性
info属性用于指定JSP页面的相关信息文本,无默认值。
9.errorPage属性
errorPage属性用于指定错误页面。当页面出现一个没有被捕获的异常时,错误信息将被throw语句抛出,而被设置为错误信息网页的JSP页面将利用exception隐含对象获取错误信息。relativeURL默认设置为空,即没有错误处理页面。
10.contentType属性
contentType属性用于指定内容MIME类型和JSP页面的编码方式。对于普通JSP页面,默认的contentType属性值为"text/html;charset=ISO-8859-1"。
11.pageEncoding属性
pageEncoding属性用于指定JSP页面的编码方式,默认值为ISO-8859-1,为支持中文可设置为UTF-8。
12.isErrorPage属性
isErrorPage属性指定JSP页面是否为处理异常错误的页面,其默认值为false。如果将isErrorPage属性设置为true,则固有的exception对象脚本元素可用。
include指令
include指令用于在当前JSP页面中加载需要插入的文件代码,即为页面插入一个静态文件,如JSP页面、HTML页面、文本文件或一段Java程序,这些加载的代码和原有的JSP代码合并成一个新的JSP文件。
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>指令实例</title>
</head>
<body>
<p>include指令实例演示!</p>
<hr>
<%@include file="hello.jsp"%>
<hr>
</body>
</html>
//hello.jsp
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP Page</title>
</head>
<body>
<h3>一分耕耘,一分收获!</h3>
<h3>知识改变命运!</h3>
</body>
</html>
taglib指令
taglib指令用来指定页面中使用的标签库以及自定义标签的前缀。
taglib指令语法格式:
<%@taglib uri="tagLibraryURI" prefix="tagPrefix" %>
1.uri属性
uri(统一资源标识符)属性用于指定标记库的存放位置,并告诉JSP引擎在编译JSP程序时如何处理指定标签库中的标签,无默认值。uri属性可以是在TLD(标记库描述符)文件或web.xml文件中定义的标记库的符号名,也可以是TLD文件或JAR文件的相对路径。
2.prefix属性
prefix属性用于指定标记库中所有动作元素名中使用的前缀,无默认值。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
上述代码可以在页面中导入标签库:“http://java.sun.com/jsp/jstl/core”是JSP标签库所在的路径。