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页