1、什么是JSP指令
JSP指令的用途非常简单,它只是告诉JSP引擎对JSP页面如何编译。因此它不包含业务逻辑,也不修改out流。这些指令始终被括在 “<%@ ?%>”标记中。两个最重要的指令是“pagePage”和“Include”。
说明:
<和% 以及和@,%和>之间不能有任何的空格。
属性值两边的双引号可以替换为单引号。引号标记不能完全省略。
在属性中使用引号使用/进行转义。
JSP指令的内部就是一些指令和和一连串的属性设定,如下所示:
<%@ 指令名 属性1 = "value1" %>
<%@ 指令名 属性2 = "value2" %>
也可以写成:
<%@ 指令名 属性1 = “value1” 属性2 = "value2" %>
2、page指令:
功能
page 指令是最复杂的JSP指令,它的主要功能为设定整个JSP 网页的属性和相关功能。具体是设置哪种功能,是由其属性指定的。
基本语法
page 指令是以<%@ page 起始,以%>结束:
<%@ page attribute1=“value1” attribute2= “value2” attribute3=…%>
然而像所有JSP 标签元素一样,page 指令也支持另一种以XML为基础的语法,如下所示:
<jsp:directive.page attribute1="value1" attribute2= "value2" />
常用属性:
language =“语言" :主要指定JSP 容器 要用什么语言来编译JSP 网页。JSP 1.2 规范中指出,目前只可以使用Java 语言,不过未来不排除增加其他语言,如C、C++、Perl 等等。默认值为Java语言
extends = “基类名" :主要定义此JSP 网页产生的Servlet 是继承哪个父类
import= "importList" :定义此JSP 网页可以使用哪些Java类库(可以有多个)
session="true | false" :决定此JSP 网页是否可以使用session 对象。默认值为true
buffer="none|size in kb":决定输出流(output stream) 是否有缓冲区。默认值为8KB 的缓冲区
autoFlush="true | false" :决定输出流的缓冲区是否要自动清除,缓冲区满了会产生异常(Exception)。默认值为true
isThreadSafe="true | false":告诉JSP 容器,此JSP 网页是否能同时处理多个请求。默认值为true,如果此值设为false, 转义生成的Servlet会实现SingleThreadModel接口。
info ="text" :表示此JSP 网页的相关信息
errorPage="error_url" :表示如果发生异常错误时,网页会被重新指向指定的URL
isErrorPage="true | false":表示此JSP Page 是否为专门处理错误和异常的网页
contentType = "ctinfo" :表示MIME 类型和JSP 网页的编码方式,其作用相当于HttpServletResponse接口的setContentType()方法
3、Include指令
在页面转换期间将文件包含到jsp页面,include指令用于在jsp页面中静态包含一个文件,该文件可以是jsp页面,html页面,文本文件或一段Java代码等。
(1)include语法:
<%@ include file="url"%>
file的属性值被解释为相对于当前jsp文件的URL.
(2)在被包含的文件中不要使用和主页重复的HTML标签。这样会影响原jsp文件中同样的标签导致错误。
因为原文件和被包含文件可以互相访问彼此定义的变量和方法,所以要避免变量和方法在命名上的问题。
注意事项
包含文件中要避免使用<html>、</html>、<body>、</body>,因为这将会影响在原来JSP 网页中同样的标签,这样做有时会导致错误;
<%@ include %>指令是一种静态的SSI(服务器端包含)。
1、所谓的静态是指file不能为一变量,例如:
<% String URL=“JSP.html” ; %>
而以下指令是错误的:
<%@ include file = “<%= URL %>” %>
2、SSI意味着不可以在file 所指定的文件后接任何参数,如下:
<%@ include file = "javaworld.jsp?name=browser" %>
同时,file 所指的路径必须是相对于此JSP 网页的路径。