在本章中,我们将讨论和学习jsp中的隐式对象。这些对象是jsp容器为每个页面中的开发人员提供的java对象,开发人员可以直接调用它们而不用显式地声明它们再调用。 jsp隐式对象也称为预定义变量。
下表列出了jsp支持的九个隐式对象 -
| 1 | request | 这是与请求相关联的httpservletrequest对象。 |
| 2 | response | 这是与客户端的响应关联的httpservletresponse对象。 |
| 3 | out | 这是用于将输出发送到客户端的printwriter对象。 |
| 4 | session | 这是与请求相关联的httpsession对象。 |
| 5 | application | 这是与应用程序上下文相关联的servletcontext对象。 |
| 6 | config | 这是与该页面相关联的servletconfig对象。 |
| 7 | pagecontext | 这封装了使用服务器特定的功能,如更高性能的jspwriter。 |
| 8 | page | 这只是一个同义词,用于调用由翻译的servlet类定义的方法。 |
| 9 | exception | exception对象允许指定的jsp访问异常数据。 |
1. request对象
request对象是javax.servlet.http.httpservletrequest对象的一个实例。每当客户端请求页面时,jsp引擎将创建一个新对象来表示该请求。
request对象提供了获取包括表单数据,cookie,http方法等http头信息的方法。
在后续章节-jsp客户端请求中涵盖与request对象相关联的一整套方法。
2. response对象
response对象是javax.servlet.http.httpservletresponse对象的一个实例。就像服务器创建request对象一样,它还创建一个对象来表示对客户端的响应。
response对象还定义了处理创建新http头的接口。通过此对象,jsp程序员可以添加新的cookie或日期戳,http状态代码等。
在后续章节 - jsp服务器响应中介绍与response对象相关联的一整套方法。
3. out对象
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(datatype dt) | 打印数据类型值 |
| 2 | out.println(datatype dt) | 打印数据类型值,然后用新行(换行)字符终止行。 |
| 3 | out.flush() | 刷新流 |
4. session对象
session对象是javax.servlet.http.httpsession的一个实例,其行为与java servlet下的会话对象行为完全相同。
session对象用于跟踪客户端请求之间的客户端会话。在随后的章节 - jsp会话跟踪中将介绍会话对象的完整使用。
5. application对象
application对象是生成的servlet的servletcontext对象的直接包装,实际上是javax.servlet.servletcontext对象的一个实例。
application对象是jsp页面在其整个生命周期中的表示。 当jsp页面被初始化时,将创建此对象,并且在jsp页面被jspdestroy()方法删除时application对象也将被删除。
通过向application对象添加属性值,可以确保组成web应用程序的所有jsp文件都可以访问它。
在jsp用户点击统计章节中介绍和学习application对象如何使用。
6. config对象
config对象是javax.servlet.servletconfig的实例化,是生成的servlet的servletconfig对象周围的直接包装。
该对象允许jsp程序员访问servlet或jsp引擎初始化参数,例如:路径或文件位置等。
以下配置方法是唯一可以使用的配置方法,它的用法是非常简单的 -
config.getservletname();
这将返回当前servlet名称,它是包含在web-infweb.xml文件中定义的<servlet-name>元素中的字符串。
7. pagecontext对象
pagecontext对象是javax.servlet.jsp.pagecontext对象的一个实例。pagecontext对象用于表示整个jsp页面。
pagecontext对象旨在作为访问有关页面的信息的一种手段,同时避免大部分实现细节。
该对象存储对每个请求的请求和响应对象的引用。应用程序,配置,会话和输出对象是通过访问此对象的属性导出的。
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是如何使用的。
8. page对象
page对象是对该页面实例的实际引用。可以认为它是表示整个jsp页面的对象。
page对象是this对象的直接同义词。
9. exception对象
exception对象是一个包含上一页抛出的异常的包装器。它通常用于生成对错误条件的适当响应。
我们将在jsp异常处理这一章中介绍这个对象的完整用法。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!