JavaWeb四大作用域

Web开发中的四个域对象(范围由小到大):

page(jsp有效)  request(一次请求) session(一次会话) application(当前web应用)

page域指的是pageContext.

request域指的是HttpServletRequest

session 域指的是HTTPSession

application 域指的是ServletContext

之所以他们是域对象,原因就是他们都内置了map集合,都有setAttribute getAttribute方法。而且他们的name都是String类型,而value都是Object类型。

他们都有自己固定的生命周期和作用域。

生命周期:

page:jsp页面被执行,生命周期开始,jsp页面执行完毕,声明周期结束。

request:用户发送一个请求,开始,服务器返回响应,请求结束,生命周期结束。

session:用户打开浏览器访问,创建session(开始),session超时或被声明失效,该对象生命周期结束。

application:web应用加载的时候创建。Web应用被移除或服务器关闭,对象销毁。[结束]。

注意:

1.Page只在当前jsp有效,每次请求分别对应不同的request.

2.Request,只在当前请求有效,每次请求分别对应不同的request域


3.Session只在一次会话中有效,会话结束就无法取到数据了。
 

 【cookie】如果没有指定Cookies对象的有效期,则Cookies对象只存在于客户端的内存。当浏览器关闭时,Cookies就会失效。

4.application:在JSP自动生成的Servlet文件中,是这样定义的:final javax.servlet.ServletContext application;
ServletContext域:

1.这是一个容器

2.说明这个容器的作用范围是整个应用程序范围

四个域对象在选择的时候,能用范围小的绝不用范围大的:

page:数据只是暂时存在集合,在jsp页面的其他地方要用,用page(页面中自定义的map)

         (什么时候需要用map了,就用page)

Request:【程序产生数据,数据显示完后就没有用了】
         数据只是做显示的,看完了就没用了。就存request域,请求转发,Servlet产生的处理结果(数据)交给jsp显示。数据转发可以带数据。


Session:【程序产生数据,显示后等会还需要使用】

application:【ServletContext在jsp中另一个名字就是application,数据显示后,等会还需要用,还需要给别人用,例如聊天室】

总结】:四个域对象在选择的时候,能用范围小的绝不用范围大的。
1.需要定义Map时不如用page,
2.请求Servlet,转发给jsp的数据存request,
3.请求重定向带过去的数据存Session,
4.全局的数据存application。
4.ServletContext:WEB容器在启动时,他会为每一个【WEB应用程序】都创建一个对应的ServletContext对象,它代表【当前WEB应用】,驻留在服务器的内存里。
在一个contex中的数据都是共享的,它是web应用的配置信息和配置参数。

上一篇:第三章:Servlet、ServletConfig、ServletContext


下一篇:使用Nginx配置资源目录展示下载