作用范围由小到大
page(默认):
存储在pageContext对象中的属性仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类。
request:
存储在request对象中的属性可以被属于同一个请求的所有servlet和JSP页面访问(在有转发的情况下可以跨页面获取属性值),例如使用pageContext.forward和pageContext.include方法连接起来的多个servlet和JSP页面。
session:
存储在session对象中的属性可用于同一个浏览器发出的所有请求。Session 的作用范围为一段用户持续和服务器所连接的时间,但与服务 器断线 ,这个属性就无效。当浏览器发出第一个请求时,就认为session的作用时间已经开始了,但是它的结束时间还是不太好判断,毕竟服务器也不是浏览器他爸,浏览器关闭并不会通知他。所以我们可以学习类似于处理“系统响应超时”这种情况的方法,设置:如果一定的时间内客户端没有反应,则认为会话结束。Tomcat的默认值为120分钟,但这个值也可以通过HttpSession的setMaxInactiveInterval()方法来设置最大时长。
application:
存储在application对象中的属性作用于这个应用程序的所有用户,从服务器一开始执行服务,一直到服务器关闭为止。从这看来,application的作用范围最广,作用的时间也最长。所以使用时要特别注意不然可能会造成服务器负载越来越重的情况。