ServletContext

来源:互联网 发布:濮阳市公务员网络培训 编辑:程序博客网 时间:2024/05/19 17:48

ServletContext是一个储存了web应用程序下所有servlet可共享的资源的上下文对象,通过ServletContext可以获取全局共享的资源,也可以通过名称将对象属性绑定到上下文。

setAttribute
getAttribute
getAttributeNames
removeAttribute

以上这些方法提供了绑定,移除,获取全局资源的方法。(方法为ServletContext接口中的方法)

ServletContext接口通过下列方法提供对web应用组成的静态内容文档层级的直接访问,包括HTML,GIF和JPEG文件:
getResource
getResourceAsStream

举例来理解ServletContext对象

1.Tomcat启动→读入xml文件
2.容器为这个应用建立一个新的ServletContext实例,应用的所有部分都共享这个上下文
3.如果xml中有定义上下文的初始参数,则容器首先创建初始参数实例(应该就像一个Bean一样)
4.把初始化参数实例的引用交给ServletContext
5.容器建立一个新的servlet,这时建立一个新的ServletConfig对象,并且为这个ServletConfig对象提供一个ServletContext的引用
6.调用servlet的init()方法初始化servlet

既然,ServletContext是由Servlet容器初始化的,那spring的ContextLoaderListener又做了什么初始化呢?

1、servlet容器启动,为应用创建一个“全局上下文环境”:ServletContext
2、容器调用web.xml中配置的contextLoaderListener,初始化WebApplicationContext上下文环境(即IOC容器),加载context-param指定的配置文件信息到IOC容器中。WebApplicationContext在ServletContext中以键值对的形式保存
3、容器初始化web.xml中配置的servlet,为其初始化自己的上下文信息servletContext,并加载其设置的配置信息到该上下文中。将WebApplicationContext设置为它的父容器。
4、此后的所有servlet的初始化都按照3步中方式创建,初始化自己的上下文环境,将WebApplicationContext设置为自己的父上下文环境。

以我的理解,webApplicationContext(IOC容器)中储存了

web.xml中 param-name 为 contextConfigLocation的参数下的所有配置文件的信息,作为所有servlet的父上下文环境

http://www.cnblogs.com/brolanda/p/4265597.html

0 0
原创粉丝点击