JSP - 隐式对象


在本章中,我们将讨论 JSP 中的隐式对象。这些对象是JSP容器在每个页面中提供给开发人员的Java对象,开发人员可以直接调用它们,而无需显式声明。JSP 隐式对象也称为预定义变量

下表列出了 JSP 支持的九个隐式对象 -

编号 对象及描述
1

要求

这是与请求关联的HttpServletRequest对象。

2

回复

这是与客户端响应关联的HttpServletResponse对象。

3

出去

这是用于将输出发送到客户端的PrintWriter对象。

4

会议

这是与请求关联的HttpSession对象。

5

应用

这是与应用程序上下文关联的ServletContext对象。

6

配置

这是与页面关联的ServletConfig对象。

7

页面上下文

这封装了服务器特定功能的使用,例如更高性能的JspWriters

8

这只是this的同义词,用于调用翻译后的 servlet 类定义的方法。

9

例外

Exception对象允许指定的JSP访问异常数据。

请求对象

request 对象是javax.servlet.http.HttpServletRequest对象的实例。每次客户端请求页面时,JSP 引擎都会创建一个新对象来表示该请求。

request 对象提供了获取 HTTP 标头信息的方法,包括表单数据、cookie、HTTP 方法等。

我们可以在后续章节中介绍与请求对象相关的完整方法集 - JSP - 客户端请求

响应对象

响应对象是javax.servlet.http.HttpServletResponse对象的实例。正如服务器创建请求对象一样,它也创建一个对象来表示对客户端的响应。

响应对象还定义了处理创建新 HTTP 标头的接口。通过这个对象,JSP 程序员可以添加新的 cookie 或日期戳、HTTP 状态代码等。

我们将在后续章节中介绍与响应对象相关的完整方法集 - JSP - 服务器响应

输出对象

out 隐式对象是javax.servlet.jsp.JspWriter对象的实例,用于发送响应中的内容。

根据页面是否缓冲,初始 JspWriter 对象的实例化方式有所不同。使用page 指令的buffered = 'false'属性可以轻松关闭缓冲。

JspWriter 对象包含与java.io.PrintWriter类大部分相同的方法。然而,JspWriter 有一些额外的方法旨在处理缓冲。与 PrintWriter 对象不同,JspWriter 抛出IOExceptions

下表列出了我们将用来编写boolean char、int、double、object、String等的重要方法。

编号 方法及说明
1

out.print(数据类型 dt)

打印数据类型值

2

out.println(数据类型 dt)

打印数据类型值,然后用换行符终止该行。

3

出.flush()

冲洗溪流。

会话对象

会话对象是javax.servlet.http.HttpSession的实例,其Behave与会话对象在 Java Servlet 下的Behave完全相同。

会话对象用于跟踪客户端请求之间的客户端会话。我们将在后续章节中介绍会话对象的完整用法 - JSP - 会话跟踪

应用对象

应用程序对象是生成的 Servlet 的ServletContext对象的直接包装器,实际上是javax.servlet.ServletContext对象的实例。

该对象是 JSP 页面整个生命周期的表示。该对象在 JSP 页面初始化时创建,并在通过jspDestroy()方法删除 JSP 页面时删除。

通过向应用程序添加属性,您可以确保组成 Web 应用程序的所有 JSP 文件都可以访问它。

我们将在JSP - Hits Counter章节中检查应用程序对象的使用。

配置对象

config 对象是javax.servlet.ServletConfig的实例,并且是生成的 servlet 的ServletConfig对象的直接包装器。

该对象允许 JSP 程序员访问 Servlet 或 JSP 引擎初始化参数,例如路径或文件位置等。

以下配置方法是您可能使用过的唯一一种,并且其用法很简单 -

config.getServletName();

这将返回 servlet 名称,该名称是WEB-INF\web.xml文件中定义的<servlet-name>元素中包含的字符串。

pageContext 对象

pageContext 对象是javax.servlet.jsp.PageContext对象的实例。pageContext 对象用于表示整个 JSP 页面。

该对象旨在作为访问有关页面的信息的方法,同时避免大多数实现细节。

该对象存储对每个请求的请求和响应对象的引用。application 、config、session和 out 对象是通过访问该对象的属性来派生的。

pageContext 对象还包含有关向 JSP 页面发出的指令的信息,包括缓冲信息、errorPageURL 和页面范围。

PageContext 类定义了多个字段,包括PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPEAPPLICATION_SCOPE,它们标识了四个范围。它还支持 40 多个方法,其中大约一半是从javax.servlet.jsp.JspContext 类继承的。

重要的方法之一是removeAttribute。此方法接受一个或两个参数。例如,pageContext.removeAttribute ("attrName")从所有范围中删除该属性,而以下代码仅从页面范围中删除它 -

pageContext.removeAttribute("attrName", PAGE_SCOPE);

pageContext的使用可以查看JSP-文件上传章节。

页面对象

该对象是对页面实例的实际引用。可以将其视为代表整个 JSP 页面的对象。

page 对象实际上是this对象的直接同义词。

异常对象

异常对象是一个包装器,包含从上一页抛出的异常。它通常用于生成对错误情况的适当响应。

我们将在JSP - 异常处理章节中介绍该对象的完整用法。