Request、Session、ServletContext域对象对比

本文对比了JavaEE中的Request、Session和ServletContext三种域对象,详细阐述了它们的作用范围、生命周期和操作属性值的方法。Request对象局限于一次请求,Session对象在会话范围内有效,而ServletContext在整个Web应用中有效。各对象的创建和销毁条件也有所不同,如Session在首次使用或访问jsp时创建,可通过setAttribute、getAttribute和removeAttribute等方法操作属性值。

1 总体对比

1.1 作用范围:

Request域对象:  仅一次请求范围有效。

ServletContext域对象:一个工程有效。

Session域对象:  一个浏览器的多次请求范围有效。(会话范围有效)

1.2 保存值的生命周期不一样:

request:

仅浏览器发出请求的时候,容器开始生效,响应完成的时候,容器死亡。

servletContext:

(1)创建时机:servletContext对象会被tomcat服务器创建出来。

(2)死亡时机(了解)

1)tomcat启动状态下,移除工程。

2)正常停止tomcat服务器。

session:

(1)创建时机

1)这个浏览器在servlet中第一次使用session的时候会创建。

2)这个浏览器第一次访问jsp的时候,服务器也会为这个浏览器创建一个session对象。

(2)销毁时机

1)程序员调用invalidate方法(立刻销毁)

2)设置的存活时间到了(默认是30分钟)

3)服务器非正常关闭(例如突然断电)

1.3 操作属性值的方法(一样):

setAttribite

getAttribute

removeAttribute

2 具体情况

2.1 request容器

2.1.1 生命周期:

仅浏览器发出请求的时候,容器开始生效,响应完成的时候,容器死亡。

2.1.2 作用范围:

仅一次请求范围有效。

转发的过程中request对象并没有死亡,因此在request对象存的值,依然有效。

2.1.3 操作属性值的方法:

setAttribite(属性名,属性值)

getAttribute(属性名)

removeAttribute(属性名)

2.2 servletContext容器

2.2.1 生命周期:

(1)创建时机(记住):

当服务器启动的时候,servletContext对象会被tomcat服务器创建出来,且每一个工程仅有一个对象,所有的servlet对象都可以获取这个servletContext对象并使用。

(2)死亡时机(了解)

1)tomcat启动状态下,移除工程。

2)正常停止tomcat服务器。

2.2.2 作用范围:

servletContext是一个工程容器对象。可以简单理解为时tomcat为每一个web工程创建的一个唯一的对象。一个工程有效。

每一个工程仅有一个对象,所有的servlet对象都可以获取这个servletContext对象并使用。

2.2.3 获取方式:

(1)获取servletContext对象的方式1(了解)

           ServletContext c1 = this.getServletConfig().getServletContext();

(2)获取servletContext对象的方式2:(掌握)

   ServletContext c2 = this.getServletContext();

2.2.4 操作属性值的方法:

(1)存数据

  c2.setAttribute("username","rose");

(2)取数据

  c2.getAttribute("username");

(3)移除值

  c2.removeAttribute("username");

2.3 session容器

2.3.1 生命周期

从session对象创建到session对象死亡;

(1)创建时机

1)这个浏览器在servlet中第一次使用session的时候会创建。

2)这个浏览器第一次访问jsp的时候,服务器也会为这个浏览器创建一个session对象。

(2)销毁时机

1)程序员调用invalidate方法(立刻销毁)

2)设置的存活时间到了(默认是30分钟)

3)服务器非正常关闭(例如突然断电)

2.3.2 作用范围:

 一个浏览器的多次请求范围有效。(会话范围有效)

2.3.3 获取方式:

request.getSession();

2.3.4 操作属性值的方法:

存值:

 Session对象.setAttribite("属性名",属性值);

取值:

               Session对象.getAttribite("属性名");

删除值:

 Session对象.removeAttribute("属性名");

2.3.5 其他api

销毁session对象:

 Session对象.invalidate();

设置存活时间:

 Session对象.setMaxInactiveInterval(秒数);  (默认存活30分钟)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值