JSP - page 指令



page 指令用于向容器提供与当前 JSP 页面相关的指令。可以在 JSP 页面的任何位置编写 page 指令。按照惯例,page 指令写在 JSP 页面的顶部。

以下是 page 指令的基本语法:

<%@ page attribute = "value" %>

您可以编写上述语法的 XML 等效项,如下所示:

<jsp:directive.page attribute = "value" />

属性

下表列出了与 page 指令相关的属性:

序号 属性 & 用途
1

buffer

指定输出流的缓冲模型。

2

autoFlush

控制 servlet 输出缓冲区的行为。

3

contentType

定义字符编码方案。

4

errorPage

定义另一个 JSP 的 URL,该 JSP 报告 Java 未经检查的运行时异常。

5

isErrorPage

指示此 JSP 页面是否是另一个 JSP 页面的 errorPage 属性指定的 URL。

6

extends

指定生成的 servlet 必须扩展的超类。

7

import

指定要在 JSP 中使用的包或类的列表,就像 Java import 语句对 Java 类所做的那样。

8

info

定义一个字符串,可以使用 servlet 的 getServletInfo() 方法访问。

9

isThreadSafe

定义生成的 servlet 的线程模型。

10

language

定义 JSP 页面中使用的编程语言。

11

session

指定 JSP 页面是否参与 HTTP 会话。

12

isELIgnored

指定是否忽略 JSP 页面中的 EL 表达式。

13

isScriptingEnabled

确定是否允许使用脚本元素。

buffer 属性

buffer 属性指定服务器输出响应对象的缓冲特性。

可以编码值为“none”以指定不进行缓冲,以便 servlet 输出立即定向到响应对象;也可以编码以千字节为单位的最大缓冲区大小,这会指示 servlet 在写入响应对象之前写入缓冲区。

要指示 servlet 将输出直接写入响应输出对象,请使用以下内容:

<%@ page buffer = "none" %>

使用以下方法指示 servlet 将输出写入大小不少于 8 千字节的缓冲区:

<%@ page buffer = "8kb" %>

autoFlush 属性

autoFlush 属性指定当缓冲区已满时是否应自动刷新缓冲输出,或者是否应引发异常以指示缓冲区溢出。

值为 true (默认值) 表示自动缓冲刷新,值为 false 会引发异常。

以下指令导致 servlet 在 servlet 的输出缓冲区已满时引发异常:

<%@ page autoFlush = "false" %>

此指令导致 servlet 在缓冲区已满时刷新输出缓冲区:

<%@ page autoFlush = "true" %>

通常,buffer 和 autoFlush 属性在一个 page 指令中编码,如下所示:

<%@ page buffer = "16kb" autoflush = "true" %>

contentType 属性

contentType 属性设置 JSP 页面的字符编码和生成的响应页面的字符编码。默认内容类型为 text/html,这是 HTML 页面的标准内容类型。

如果要从 JSP 输出 XML,请使用以下 page 指令:

<%@ page contentType = "text/xml" %>

以下语句指示浏览器将生成的页面呈现为 HTML:

<%@ page contentType = "text/html" %>

以下指令将内容类型设置为 Microsoft Word 文档:

<%@ page contentType = "application/msword" %>

您还可以指定响应的字符编码。例如,如果要指定返回给浏览器的结果页面使用 ISO Latin 1,可以使用以下 page 指令:

<%@ page contentType = "text/html:charset=ISO-8859-1" %>

errorPage 属性

errorPage 属性告诉 JSP 引擎在当前页面运行时出现错误时显示哪个页面。errorPage 属性的值是相对 URL。

以下指令在抛出所有未捕获的异常时显示 MyErrorPage.jsp:

<%@ page errorPage = "MyErrorPage.jsp" %>

isErrorPage 属性

isErrorPage 属性指示当前 JSP 可以用作另一个 JSP 的错误页面。

isErrorPage 的值可以是 true 或 false。isErrorPage 属性的默认值为 false。

例如,handleError.jsp 将 isErrorPage 选项设置为 true,因为它应该处理错误:

<%@ page isErrorPage = "true" %>

extends 属性

extends 属性指定生成的 servlet 必须扩展的超类。

例如,以下指令指示 JSP 翻译器生成 servlet,以便该 servlet 扩展 somePackage.SomeClass

<%@ page extends = "somePackage.SomeClass" %>

import 属性

import 属性的功能与 Java import 语句相同,行为也类似。import 选项的值是要导入的包的名称。

要导入 java.sql.*,请使用以下 page 指令:

<%@ page import = "java.sql.*" %>

要导入多个包,可以以逗号分隔的方式指定它们,如下所示:

<%@ page import = "java.sql.*,java.util.*"  %>

默认情况下,容器会自动导入 java.lang.*, javax.servlet.*, javax.servlet.jsp.*,javax.servlet.http.*

info 属性

info 属性允许您提供 JSP 的描述。以下是一个编码示例:

<%@ page info = "This JSP Page Written By ZARA"  %>

isThreadSafe 属性

isThreadSafe 选项将页面标记为线程安全的。默认情况下,所有 JSP 都被认为是线程安全的。如果将 isThreadSafe 选项设置为 false,则 JSP 引擎确保一次只有一个线程正在执行您的 JSP。

以下 page 指令将 isThreadSafe 选项设置为 false:

<%@ page isThreadSafe = "false"  %>

language 属性

language 属性指示在 JSP 页面脚本编写中使用的编程语言。

例如,因为通常使用 Java 作为脚本语言,所以您的 language 选项如下所示:

<%@ page language = "java" %>

session 属性

session 属性指示 JSP 页面是否使用 HTTP 会话。值为 true 表示 JSP 页面可以访问内置的 session 对象,值为 false 表示 JSP 页面无法访问内置的 session 对象。

以下指令允许 JSP 页面使用任何内置的 session 对象方法,例如 session.getCreationTime()session.getLastAccessTime()

<%@ page session = "true" %>

isELIgnored 属性

isELIgnored 属性使您可以禁用对 JSP 2.0 中引入的表达式语言 (EL) 表达式的求值。

该属性的默认值为 true,这意味着表达式 ${...} 将根据 JSP 规范进行求值。如果属性设置为 false,则表达式不会被求值,而是被视为静态文本。

以下指令设置表达式不被求值:

<%@ page isELIgnored = "false" %>

isScriptingEnabled 属性

isScriptingEnabled 属性确定是否允许使用脚本元素。

默认值 (true) 启用脚本片段、表达式和声明。如果属性的值设置为 false,则如果 JSP 使用任何脚本片段、表达式(非 EL)或声明,则会引发翻译时错误。

如果要限制脚本片段、表达式(非 EL)或声明的使用,可以将属性的值设置为 false:

<%@ page isScriptingEnabled = "false" %>
jsp_directives.htm
广告