JavaWeb中的作用域总结

Posted on 2017-03-21 07:54  levelhi  阅读(257)  评论(0)    收藏  举报

JavaWeb中的作用域总结

  1. servlet中的四个作用域对象:

    • page: 一个JSP页面
    • request
      请求作用域,就是客户端的一次请求
      开始:client发出请求开始
      结束:响应结果回到client结束
    • session
      会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。
      生命周期:会话超时,或者服务器端强制使会话失效。
      开始:client第1次请求 遇到getSession(true)
      结束:超时、手动销毁(调用invalidate)
    • ServletContext
      全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,
      生命周期为:应用程序启动到停止。其实就是ServletContext对象
  2. JSP四种范围对象的作用域
    作用域范围从小到大顺序:
    pageContext----request----session----application

    • pageContext
      作用域仅限于当前页面对象,可以近似于理解为java的this对象,离开当前JSP页面(无论是redirect还是forward),则pageContext中的所有属性值就会丢失.
    • request
      作用域是同一个请求之内,在页面跳转时,如果通过forward方式跳转,则forward目标页面仍然可以拿到request中的属性值。如果通过redirect方式进行页面跳转,由于redirect相当于重新发出的请求,此种场景下,request中的属性值会丢失。
    • session
      session的作用域是在一个会话的生命周期内,会话失效,则session中的数据也随之丢失。
    • application
      作用域是最大的,只要服务器不停止,则application对象就一直存在,并且为所有会话所共享。