Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说JavaWeb四大域对象详解,希望能够帮助你!!!。
一.介绍
在JavaWeb中存在四大域对象,根据它们的作用范围从小到大,分别是PageContext、Request、Session 、application。下面主要针对作用范围,生命周期进行介绍。
二. PageContext
a. 作用范围
PageContext在jsp中,是作用范围最小的一个;所用范围仅限于当前的jsp页面,对于在servlet中无法获取该对象。
b. 生命周期
对jsp请求时,生命周期开始;响应后,生命周期结束销毁。
三. Request
a. 作用范围
相对于PageContext次之,仅限同一个请求,主要用于请求转发。
b.生命周期
在service 方法调用前由服务器创建开始;在整个请求结束,生命周期结束销毁。
四. Session
a. 作用范围
相对于Request次之,仅限于一次会话,会话从浏览器打开开始,关闭时结束;在servlet中获取方式是通过request对象获取。
b. 生命周期
在第一次调用 request.getSession() 方法时开始,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回;若设置了session失效时间,则到时间则失效,同时关闭浏览器则销毁失效(注:失效时间没到,关闭浏览器,也会强制失效)
五. Application
a. 作用范围
作用范围最大,范围限于当前web应用;只要在一处设置的属性,其它各处的jsp或者是servlet都可以获取,同时在servlet中对应的是ServletContext对象
b. 生命周期
在Web应用被加载进容器时创建代表整个web应用的ServletContext对象,在服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。
六. 作用域中操作属性的相关方法
void setAttribute(String name, Object o)
设置属性
Object getAttribute(String name)
根据name获取指定属性
Enumeration getAttributeNames()
获取所有属性
void removeAttribute(String name)
根据name移除指定的属性
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。