浅谈page,request,session,application四种范围
JaveWeb四种主要的范围:
1.page: page表示页面范围。 页面范围对应的时间段为:从客户访问一个jsp文件开始,到这个jsp文件执行结束。
2.request: request表示请求范围。 请求范围时间段为:从客户请求访问一个jsp文件开始,到这个jsp返回响应结果结束,如果这个jsp文件把请求转发给其他web组件,那么知道其他web组件返回响应结果结束。 请求范围是指服务器响应一次客户请求的过程,从servlet容器接收到一个客户请求开始,到返回响应结果结束, 请求范围与servletRequest和servletResponse相对应。
3.session: session表示会话范围。 会话范围对应着整个会话的生存周期。会话范围是指浏览器与一个web应用进行一次会话的过程。具体实现上,会话范围与httpsession对象的生命周期相对应。因此web组件只要共享同一个httpsession对象也就能共享会话范围内的数据。 举例说明: 浏览器进程第一次请求访问应用中一个支持会话的网页,servlet容器驶入寻找请求中表示sessionID的cookie,由于还不存在这样的cookie,所以一个新的会话开始了,创建一个httpsession的对象,然后为它分配唯一的sessionID,并把id作为Cookie放在http响应结果中,当浏览器接收到http响应后,会把sessionID保存的cookie保存在客户端。浏览器进程继续访问应用的任意一个支持会哈德页面,http请求会包含表示sessionID的Cookie,servlet容器试图寻找http请求中sessionID的cookie,找到后可以找到与sessionID匹配的httpSession。
4.application(应用)范围: web应用范围对应整个web应用的生存周期。web应用范围值得是web应用的生命周期,具体实现上web应用范围与servletContext对象的生命周期对应,web应用范围内的共享数据作为servletContext的属性存在。因此web组件只要共享同一个servletContext对象就能共享web应用范围内的共享数据。
在jsp页面可以直接使用application对象, 在servlet中却不能直接使用,
这如何是好呢?
在servlet 中使用application方法如下:
this.getServletContext().setAttribute("user","123456");
原文链接:https://blog.csdn.net/a1281069907/article/details/80522239