javaWEB中的四种域对象

javaWEB中的四种域对象

(1)ServletContext

 

ServletContext是最大的Web域对象,在整个工程内有效,可以存储一些需要全局部署的配置文件,也可以存储其他信息,不过因为它的生命周期最长,是随着服务器的开

启而开启,随着服务器的关闭而销毁,或者项目从服务器中移除工程而销毁。所以ServletContext中存储数据,会一直储存在内存中,所以少用这个对象会比较节省内存。

(2)Session

 

session的生命周期,随着getSession方法的调用而创建,默认是30分钟不调用就会销毁这个session对象,服务器非正常关闭也会销毁session,服务器正常关闭只会将

session序列化到磁盘中,在下一次开启的时候会再加载进内存,所以一次会话结束,浏览器结束,并不会销毁session,但是会使得该浏览器失去密钥,从而无法访问这个

session;还有手动调用session.invalidate()会销毁session。session的作用范围是一次会话,也就是从打开浏览器到关闭浏览器。

Session与Cookie的比较:

1)、cookie是存于浏览器端,而session是存于服务器端。

2)、cookie有数量和大小限制,而session没有,可以无限创建。

3)、session因为几乎只有一次的作用,会对服务器产生较多的垃圾,所以还是慎用。

(3)Request

 

Request的作用范围是一次访问的过程,生命周期随着访问开始而开始,随着服务器的响应完毕而结束,所以

更多的数据会添加到这个域对象。

 1)、转发会携带这第一次的ServletRequest的信息,传递到下一个文件,而重定向是重新开启一次访问,不会携带。

2)、转发上面的地址栏不会发生改变就访问了别的内容,重定向会发生改变。

3)、转发只能存在于服务器内部,重定向可以访问任何其他的网页。

4)、因为转发只创建了一次客户端和服务器的链接,所以相对而言转发会比较节省网络资源。

(4)Page域

Page的作用范围为当前页有效,只能用于jsp页面中,是四个域对象中作用范围最小的的一个域对象。

posted @ 2022-04-03 13:40  wiselee/  阅读(482)  评论(0编辑  收藏  举报