servlet三大作用域

Sevlet中的三个作用域

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

1、HttpServletRequest作用域:

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

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

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

2、HttpSession作用域:

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

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

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

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

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

(3):手动调用Session的invalidate的方法。

3、SevletContext作用域:

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

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

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

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

4、三个作用域通用API:

存放数据:setAttribute(name,value)

获取数据:getAttribute(name);

删除数据:removeAttribute(name);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,180评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,806评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,395评论 11 349
  • 本文包括:1、Listener简介2、Servlet监听器3、监听三个域对象创建和销毁的事件监听器4、监听三个域对...
    廖少少阅读 6,187评论 6 28
  • 今天本来和朋友约好去看西游伏妖篇的,由于中午家里人一起吃饭,小酌了几杯,就没有去成。 休息之后,问朋友借了个爱奇艺...
    喂了自由阅读 347评论 0 0