servlet作用域

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Java的四大作用域为:PageContext,ServletRequest,HttpSession,ServletContext,

这里只涉及其中两个作用域,既HttpSession和ServletContext

一、HttpSession

范围第二大的域,(会话范围)在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session。如果没有,就在内存中创建一个session并返回。当一短时间内(默认30分钟)session没有被使用,则服务器会销毁该session。若服务器非正常关闭,未到期的session也会跟着销毁。若调用session提供的invalidate()方法,可以立即销毁session。

服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。

会话:用户打开浏览器会话开始,直到关闭浏览器会话才会结束。一次会话期间只会创建一个session对象。

获取方法截图:

该域只在同一浏览器内共享数据,在不同浏览器中数据不共享。

在Chrome中的效果:

在IE浏览器中的效果: 

说明不同浏览器下,数据不共享。 

二、ServletContext

所有作用域中范围最大的域,由于所有servlet共享一个servletcontext对象,所有多个servlet通过servletcontext可以实现数据在不同servlet之间的共享,是一个全局变量

获取方法截图:

该域范围最大,所有servlet共享一个servletcontext对象。

在Chrome中的效果:

 在IE浏览器中累加一次的效果:

说明在不同浏览器中,对于servletcontext中的数据是共享的。 


总结

以上就是今天要讲的内容,本文仅仅简单介绍了HttpSession与ServletContext两个域的不同,HttpSession:服务器会为每个会话创建一个session对象,所以每个session对象只被在当前的servlet对象共享;ServletContext:ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象,所有的客户端在访问服务器时都共享同一个ServletContext对象;ServletContext对象一般用于在多个客户端间共享数据时使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值