javaweb四大域对象都有哪些-蛙课网

tech2022-09-20  68

Javaweb四大域对象分别是PageContext、request、session、ServletContext,他们的作用域范围也是有大有小的。有的作用范围是整个web应用,有的作用范围却只是一个jsp页面,超过这个jsp页面,就不能使用了。同时他们的生命周期和常用功能也是不同的,接下来我们一起了解一下javaweb四大域对象相关知识。

说起ServletContext,一些人会产生误解,认为一个Servlet对应一个ServletContext。其实不是这样的,ServletContext对应的是整个web应用程序,这一点我命需要明白了,这也是ServletContext基础中的基础。而ServletContext的生命周期是,在web应用被加载进容器的时候,创建整个web应用的ServletContext对象。如果服务器关闭或者web应用被删除的话,ServletContext对象也就销毁了。ServletContext对象经常在读取源文件的时候,在不同Servlet之间转发的时候进行使用。

session的作用范围是一次浏览器和服务器的交互会话,是用来解决安全问题的。就是在一次会话中解决两次HTTP的请求关联,让他们产生联系,让两个页面都可以读取到这个全局的session信息,Session信息存在于服务端。Session的生命周期是,第一次调用request.getSession()方法时,首先服务器需要检查是否有session被创建了,如果没有被创建,就会新创建一个session并返回。默认30分钟内如果session没有被使用,服务器就会销毁session,如果服务器在使用过程中被强行关闭了,session不管有没有到期,都会跟着被关闭。同时session也可以调用invalidate()方法,自行销毁session。Session经常使用在为浏览器创建内存空间,也保存会话的相关信息。

request是在整个请求链中共享数据的,同样它的作用范围也只是整条请求链。request的生命周期是,在Service方法调用前由服务器进行创建,它只需要传入service方法就行。如果整条请求链结束了,request的生命也就结束了。

PageContext是四大域中应用范围最小的一个域了,从单词翻译过来看,是一个页面,所以呢它的作用范围也就是一个jsp页面了,生命周期是从对jsp请求时开始,如果响应结束了,PageContext的生命也跟着结束了。我们可以把PageContext当做一个入口,用来获取其他八大隐式对象,或者获取所有域中的数据。因为PageContext本身提供了forward()和include()方法,所以可以跳转到其他资源中。

虽然四大域对象在javaweb中使用方式和使用的地方不同,但是都为javaweb的开发做出了贡献。

最新回复(0)