📅  最后修改于: 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对象是javax.servlet.jsp.PageContext对象的实例。 pageContext对象用于表示整个JSP页面。
此对象旨在作为一种访问页面信息的方式,同时避免了大多数实现细节。
该对象存储对每个请求的请求和响应对象的引用。应用程序,配置,会话和输出对象是通过访问该对象的属性而派生的。
pageContext对象还包含有关发布到JSP页面的指令的信息,包括缓冲信息,errorPageURL和页面范围。
PageContext类定义了几个字段,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE和APPLICATION_SCOPE ,它们标识了四个范围。它还支持40多种方法,其中大约一半是从javax.servlet.jsp.JspContext类继承的。
重要的方法之一是removeAttribute 。此方法接受一个或两个参数。例如, pageContext.removeAttribute(“ attrName”)从所有范围中删除该属性,而以下代码仅从页面范围中删除该属性-
pageContext.removeAttribute("attrName", PAGE_SCOPE);
可以在“ JSP-文件上载”一章中检查pageContext的使用。
该对象是对页面实例的实际引用。可以将其视为代表整个JSP页面的对象。
页面对象实际上是此对象的直接同义词。
异常对象是一个包装器,其中包含从上一页引发的异常。它通常用于生成对错误情况的适当响应。
我们将在“ JSP-异常处理”一章中介绍该对象的完整用法。