1 / 6
文档名称:

黑马程序员javaweb教程ServletContext.doc

格式:doc   大小:96KB   页数:6
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

黑马程序员javaweb教程ServletContext.doc

上传人:63229029 2017/7/11 文件大小:96 KB

下载得到文件列表

黑马程序员javaweb教程ServletContext.doc

文档介绍

文档介绍:ServletContext
ServletContext概述
域对象:存取项目共享数据;
读取初始化参数:;
获取项目真实路径。
1 最大范围的域对象
JavaWeb中三个域对象,从大到小排列
:整个项目中只有一个,与服务器岁同生共死!
:一个会话一个,从打开本项目的第一个页面开始,直到关闭本项目中所有页面结束。这是一个会话的范围!
:一次请求一个,请求结束对象就销毁!
request是一个请求一个,一个请求不可能由多个用户发出,所以它不能存在多用户共享数据。
session是一个会话一个,所谓会话是一个用户打开当前项目的第一个页面开始,直到关闭当前项目所有页面结束,所以session也不能存放多用户共享数据。
application是一个项目只有一个,在Tomcat启动时创建,在Tomcat关闭时销毁,生命周期最长。可以存放多用户的共享数据。
请求范围:请求范围共享数据的意义在哪里呢?一个请求中包含多个Servlet,那么多个Servlet之间共享数据;
会话范围:一个用户对服务器的一次访问过程,在整个会话过程中共享数据。只要是一个会话中,多个请求之间也可以共享数据!可以用来跟踪用户的状态!例如第一个请求是登录,验证通过了,但第二个请求怎么知道你是已经为登录状态的呢?这需要session。
项目范围:一个请求范围不可能存在多个用户,一个会话中也只能是一个用户,但一个项目中就不太一样了。一个项目中可以有多个用户,所有访问这个项目的用户都可以共享ServletContext中的数据!一个用户向ServletContext中存放了数据,就算第二个用户明年再来获取这个数据也是可以的。但是,服务器不能重启,一重启,那么ServletContext就去了!
2 获取ServletContext实例
ServletConfig#getServletContext():得到ServletConfig对象就可以获取ServletContext对象,但在哪里可以获取config对象呢?Servlet的init()方法(生命周期方法)的参数就是config对象。
GenericServlet#getServletContext():GenericServlet是Servlet的实现类,它是HttpServlet的父类。它提供了getServletContext()方法,也就是说,你写的Servlet是GenericServlet的子类,就可以使用getServletContext()获取ServletContext对象!
注意,通常我们的Servlet都是GenericServlet的子类,所以我们获取ServletContext对象时都是使用getServletContext()方法来获取!而不是使用config对象来获取!
我们可查看GenericServlet源代码可以得知,它的getServletContext()方法也是依赖config对象得到的,说白一点,真正获取ServletContext的方法只有一个