浅谈对于作用域的理解

    最近在学一个工作流框架JBPM的时候,又碰到了有关作用域的问题,也就是谈到流程变量是存在于一个execution的作用域中。忽然回想到以前学servlet、学SSH的时候老是碰到这个名词,当时也是似懂非懂的,不过这次反倒一些想通了,下面简单谈谈对这个概念,希望对大家有用。


    所谓作用域,顾名思义就是你存储的内容他能够在哪个范围起作用,说的通俗点就是在哪个范围能用,出了这个范围就不行了。这样一想,以前学servlet的几个常见的作用域对象PageContextRequestSessionApplication这些作用域也就容易理解了。


    PageContext是jsp页面能用,所以他的作用域最小,也就是说存储在它当中的变量出了这个jsp页面就不能用,其实说到底跟类中的{}内定义的局部变量何其相似。


    Request表示的是一个请求的过程,这个请求的过程是比较难理解的,是指从客户端发送请求到服务端收到并响应客户端的过程。值得注意的是,如果在服务端进行了跳转,也是算在这次请求内的,只有回到客户端或服务端发出重定向请求(其实也是回到客户端),这次请求才算断,那么你存储在这个request中的变量会在这个期间都能引用,一旦request结束,他也会随着request一起释放掉。


    Session表示的是客户的一次临时访问回话,访问某网站时,会生成一个sessionID,这个id有一定的时效性,大概30分钟左右,可以设定,过了时间你又会生成一个新的sessionId,好像是与原来的比较了以后不一致了,就失效了,有人就会问了,那我一直访问也会失效吗?放心,你访问一次他就会重新计时。也就是说你存储在session作用域中的变量,在这次会话的有效时期内都是可以引用的。


    Application就不多说了,存储在这个作用域中变量在整个应用都可以用,所以说存放在它里面的作用域是最大的。


    总的来说,不管以后遇到什么有关作用域的问题,基本上可以这样理解,你的变量放在某个作用域里面,就只能在某个作用域起作用的范围内起作用。出了这个范围就不行了,还是很容易理解的吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值