jsp-四大作用域

jsp-四大作用域

起男 1,110 2020-10-29

jsp-四大作用域

application

作用域是服务器启动到关闭的整段时间,在这个给作用域内设置的信息可以被所有应用程序使用。

application作用域上的信息传递是通过ServletContext实现的

主要方法

  • getAttrbute:从application中获取信息
  • setAttrbute:向application中设置信息

session

作用域是同一浏览器对服务器进行多次访问,在这多次访问之间传递信息,就是session作用域的体现。

session是通过HttpSession接口实现的

主要方法

  • HttpSession.getAttrbute:从session中获取信息
  • HttpSession.getAttribute:向session中保存信息
  • HttpServletRequest.getSession:获取当前请求所在的session对象

session的开始时刻比较容易判断,它从浏览器发出第一个http请求即可认为会话开始。

但会话结束时刻就不好判断了,因为浏览器关闭时并不会通知服务器,所以只能通过如下方法判断:如果一定时间内客户端没有反应,则认为会话结束。

tomcat的默认值为120分钟,但这个值也可以通过HttpSession的setMaxinactiveInterval方法来设置,如果想主动让会话结束,可以使用HttpSession的invalidate方法,来强制结束当前session

request

一个http请求的处理可能需要多个servlet合作,而这几个servlet之间可以通过某种方式传递信息,但这个信息在请求结束后就无效了。

servlet之间的信息共享是通过HttpServletRequest接口来实现的。

主要方法

  • setAttrbute:将值以指定名称保存到request作用域中
  • getAttrbute:从request中获取指定名称的值

page

page对象的作用域范围仅限于用户请求的当前页面,对于page对象的引用将在响应返回给客户端之后被释放。

对page对象的引用通常存储在pageContext对象中

request和page的生命周期都是短暂的,它们之间的区别:一个request可以包含多个page页