共计 1502 个字符,预计需要花费 4 分钟才能阅读完成。
Web 交互的最基本单位为 HTTP 请求。每个用户从进入网站到离开网站这段过程称为一个 HTTP 会话,一个服务器的运行过程中会有多个用户访问,就是多个 HTTP 会话。
Application
作用范围在服务器启动到服务器关闭为止。Application 的范围最大、停留的时间也最久,所以使用时要特别注意不然可能会造成服务器负载越来越重的情况。只要将数据存入 Application 对象,数据的范围 (Scope) 就为 Application。
具有 Application 范围的对象被绑定到 javax.servlet.ServletContext 中。在 Web 应用程序运行期间,所有的页面都可以访问在这个范围内的对象。
Application 对象的主要方法:
getAttribute(String name) return Object
getAttributeNames() return Enumeration
getInitParameter(String name)
getServletInfo()
setAttribute(String name , Object object)
Session(会话)
HTTP 会话开始到结束这段时间。Session 的作用范围为用户和服务器所连接的一段持续时间,与服务器断线,这个属性就无效了。
Session 的开始时刻比较容易判断,它从浏览器发出第一个 HTTP 请求即可认为会话开始。但结束时刻就不好判断了,因为浏览器关闭时并不会通知服务器,所以只能通过如下这种方法判断:如果一定的时间内客户端没有反应,则认为会话结束。Tomcat 的默认值为 120 分钟,这个值也可以通过 HttpSession 的 setMaxInactiveInterval() 方法来设置。具有 session 范围的对象被绑定到 javax.servlet.http.HttpSession 对象中。
Session 对象的主要方法:
getAttribute(String name) return Object
getAttributeNames() return Enumeration
getCreationTime() return long
getId() return String
getLastAccessedTime() return long
getMaxInactiveInterval() return int
removeAttribute(String name) void
setAttribute(String name , java.lang.Object value) void
Requset
HTTP 请求开始到结束这段时间。Request 的范围是在一网页发出请求到另一个网页之间。一个 HTTP 请求的处理可能需要多个 Servlet 合作,这几个 Servlet 之间可以通过某种方式传递信息,这个信息在请求结束后就失效。具有 Request 范围的对象被绑定到 javax.servlet.ServletRequest 对象中。Request 对象对于每一个客户请求都是不同的,所以对于每一个新的请求,都要重新创建和删除这个范围内的对象。
Request 对象的主要方法:
getParameter(String name) return String
getParameterNames() return Enumeration
getParameterValues(String name) return String[]
Page
作用范围:当前页面从打开到关闭这段时间,它只能在同一个页面中有效。
具有 Page 范围的对象被绑定到 javax.servlet.jsp.PageContext 对象中。