📜  JSP-隐式对象

📅  最后修改于: 2020-11-13 05:18:08             🧑  作者: Mango


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

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

S.No. Object & Description
1

request

This is the HttpServletRequest object associated with the request.

2

response

This is the HttpServletResponse object associated with the response to the client.

3

out

This is the PrintWriter object used to send output to the client.

4

session

This is the HttpSession object associated with the request.

5

application

This is the ServletContext object associated with the application context.

6

config

This is the ServletConfig object associated with the page.

7

pageContext

This encapsulates use of server-specific features like higher performance JspWriters.

8

page

This is simply a synonym for this, and is used to call the methods defined by the translated servlet class.

9

Exception

The Exception object allows the exception data to be accessed by designated JSP.

请求对象

该请求对象是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

下表列出了我们将用于编写布尔char,int,double,object,String等的重要方法。

S.No. Method & Description
1

out.print(dataType dt)

Print a data type value

2

out.println(dataType dt)

Print a data type value then terminate the line with new line character.

3

out.flush()

Flush the stream.

会话对象

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

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

应用对象

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

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

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

我们将在“ JSP-Hits Counter”一章中检查Application Object的使用。

配置对象

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

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

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

config.getServletName();

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

pageContext对象

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

此对象旨在作为一种访问页面信息的方式,同时避免了大多数实现细节。

该对象存储对每个请求的请求和响应对象的引用。应用程序,配置,会话和输出对象是通过访问该对象的属性而派生的。

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);

可以在“ JSP-文件上载”一章中检查pageContext的使用。

页面对象

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

页面对象实际上是对象的直接同义词。

异常对象

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

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