Sevlet中的三个作用域

             Sevlet中的三个作用域


      Servlet中常用来存储数据的三大作用域:按照使用范围从小到大排列为: HttpServletRequestHttpSessionServletContext三个作用域,下边详细介绍这三个作用域。

1HttpServletRequest作用域:

       存入数据的方法request.setAttribute("User",user);(这里是把user放入到request作用域中,keyUser,valueuser),此作用域保存的数据只是针对一次请求。使用该对象保存数据,一次请求内数据有效。请求转发是属于一次请求的,所以放在此作用域中的数据,在一个页面转发多个页面数据都是有效的。

     作用域创建时间:客户端向服务器发送一次请求时创建。

      销毁时间:服务器为这次请求作出响应之后,销毁request.

2HttpSession作用域:

        针对一次会话,使用该对象保存数据,数据保存在服务器上,一次会话(多个请求)内数据有效,如果关闭一次浏览器,结束这次回话,再次打开的时候session就失效了。

       创建时间:服务器第一次调用getSession()方法的时候,服务器创建session对象。

销毁时间:销毁有三种情况

    1)服务器非正常关闭(正常关闭时:Session被序列化);

    2):Session过期,xml文件配置默认时间是30分钟。

    3):手动调用Sessioninvalidate的方法。

3SevletContext作用域:

针对一个web应用。一个web应用只有一个SevletContext对象,使用该对象保存的数据在整个web应用中都有效。

       创建时间:服务器启动的时候。

 销毁时间:服务器关闭的时候或者项目移除的时候。

     总结:如果数据保存在request对象中,一般使用请求转发,来获取。因为请求转发是只有一次请求的。但是如果是重定向,因为重定向是多次请求,所以不能使用request中的数据,可以使用sessioncontext中的。

4、三个作用域通用API

存放数据:setAttribute(name,value)

获取数据:getAttribute(name);

删除数据:removeAttribute(name);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值