作用域
•作用域"就是"信息共享的范围",也就是说一个信息能够在多大的范围内有效。
•Web交互的最基本单位为HTTP请求。每个用户从进入网站到离开网站这段过程称为一个HTTP会话,一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话。
1、application
•Application的作用范围在服务器一开始执行服务,到服务器关闭为止。
•Application的范围最大,停留的时间也最久,所以使用时要特别注意不然可能会造成服务器负载越来越重的情况。只要将数据存入application对象,数据的范围范围
•
•application作用域上的信息传递是通过ServletContext实现的,它提供的主要方法如下所示:
• ObjectgetAttribute(Stringname):从application中获取信息。
• void setAttribute(Stringname, Object value):向application作用域中设置信息。
•Application的作用范围在服务器一开始执行服务,到服务器关闭为止。
•Application的范围最大,停留的时间也最久,所以使用时要特别注意不然可能会造成服务器负载越来越重的情况。只要将数据存入application对象,数据的范围范围
•
•application作用域上的信息传递是通过ServletContext实现的,它提供的主要方法如下所示:
• ObjectgetAttribute(Stringname):从application中获取信息。
• void setAttribute(Stringname, Object value):向application作用域中设置信息。
2、session
session是通过HttpSession接口实现的,它提供的主要方法如下所示。
Object HttpSession.getAttribute(String name):从session中获取信息。
void HttpSession.setAttribute(String name, Object value):向session中保存信息。
HttpSession HttpServletRequest.getSessio():获取当前请求所在的session的对象。
session的开始时刻比较容易判断,它从浏览器发出第一个HTTP请求即可认为会话开始。但结束时刻就不好判断了,因为浏览器关闭时并不会通知服务器,所以只能通过如下这种方法判断:如果一定的时间内客户端没有反应,则认为会话结束。Tomcat的默认值为120分钟,但这个值也可以通过HttpSession的setMaxInactiveInterval()方法来设置:
3、page
•当前页面从打开到关闭这段时间。标名pageContext.setAttribute("","");它只能在同一个页面中有效;
•request和page的生命周期都是短暂的,它们之间的区别:一个request可以包含多个page页(include,forward及filter)
•ActionContext类没有提供类似getRequest()这样的方法来获取封装了HttpServletRequest的Map对象。要得到请求Map对象,你需要为get()方法传递参数“request”。
•publicMap getSession()
•获取封装了HttpSession的Map对象。
•publicMap getApplication()
•获取封装了ServletContext的Map对象。
4、request
•当前页面从打开到关闭这段时间。标名pageContext.setAttribute("","");它只能在同一个页面中有效;
•request和page的生命周期都是短暂的,它们之间的区别:一个request可以包含多个page页(include,forward及filter)
•ActionContext类没有提供类似getRequest()这样的方法来获取封装了HttpServletRequest的Map对象。要得到请求Map对象,你需要为get()方法传递参数“request”。
•publicMap getSession()
•获取封装了HttpSession的Map对象。
•publicMap getApplication()
•获取封装了ServletContext的Map对象。