WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象包含Web应用中所有 Servlet 在 Web 容器中的一些数据信息。ServletContext随着Web应用的启动而创建,随着 Web 应用的关闭而销毁。一个 Web 应用只有一个ServletContext 对象。
ServletContext中不仅包含了 web.xml 文件中的配置信息,还包含了当前应用中所有Servlet可以共享的数据。可以这么说, ServeltContext 可以代表整个应用,所以ServletContext有另外一个名称:application。
示例:
之前我们为每个servlet配置过初始化信息,现在我们在web.xml文件中为application整个应用配置初始化参数,web.xml文件修改后要重启tomcat才能生效:
创建servlet:
新建一个servlet,访问刚刚添加的属性:
ServletContext中常用方法
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext()方法获得ServletContext对象。
1、String getInitParameter ():获取 web.xml 文 件 的 中 指 定 名 称 的上下文参数值 。
2、Enumeration getInitParameterNames():获取 web.xml 文件的中的所有的上下文参数名称。其返回值为枚举类型 Enumeration。
3、void setAttribute(String name, Object object):在 ServletContext 的公共数据空间中,也称为域属性空间,放入数据。这些数据对于 Web应用来说,是全局性的,与整个应用的生命周期相同。当然,放入其中的数据是有名称的,通过名称来访问该数据。
4、Object getAttribute(String name):从 ServletContext 的域属性空间中获取指定名称的数据。
5、void removeAttribute(String name):从 ServletContext 的域属性空间中删除指定名称的数据。
6、String getRealPath(String path):获取当前 Web 应用中指定文件或目录在本地文件系统中的路径。
7、String getContextPath():获取当前应用在 Web 容器中的名称。
网友评论