- JSP 基础教程
- JSP - 首页
- JSP - 概述
- JSP - 环境搭建
- JSP - 架构
- JSP - 生命周期
- JSP - 语法
- JSP - 指令
- JSP - 动作
- JSP - 隐式对象
- JSP - 客户端请求
- JSP - 服务器响应
- JSP - HTTP 状态码
- JSP - 表单处理
- JSP - 编写过滤器
- JSP - Cookie 处理
- JSP - 会话跟踪
- JSP - 文件上传
- JSP - 日期处理
- JSP - 页面重定向
- JSP - 点击计数器
- JSP - 自动刷新
- JSP - 发送邮件
- JSP 高级教程
- JSP - 标准标签库
- JSP - 数据库访问
- JSP - XML 数据
- JSP - JavaBean
- JSP - 自定义标签
- JSP - 表达式语言
- JSP - 异常处理
- JSP - 调试
- JSP - 安全性
- JSP - 国际化
- JSP 有用资源
- JSP - 问答
- JSP - 快速指南
- JSP - 有用资源
- JSP - 讨论
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" %>