一、ServletConfig对象
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。(配置在某个servlet标签或者整个web-app下)
- <servlet>
- <servlet-name>DemoServlet</servlet-name>
- <servlet-class>cn.csdn.web.servlet.DemoServlet</servlet-class>
- <init-param>
- <param-name>version</param-name>
- <param-value>2.0</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>DemoServlet</servlet-name>
- <url-pattern>/demo/*</url-pattern>
- </servlet-mapping>
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
首先,需要创建私有变量:private ServletConfig config = null;
其次,要重写init方法,传入config,令this.config = config;从而获得ServletConfig对象
最后,就可以获得<init-parm>中的配置信息了
<span style="font-family:Microsoft YaHei;"><span style="font-family: 'Microsoft YaHei';font-size:12px; line-height: 21px;"> </span><span style="font-family: 'Microsoft YaHei';font-size:12px; line-height: 21px;"> </span>String username = this.config.getInitParameter("username");
<span style="font-family: 'Microsoft YaHei';font-size:12px; line-height: 21px;"> </span><span style="font-family: 'Microsoft YaHei';font-size:12px; line-height: 21px;"> </span>String password = this.config.getInitParameter("password");</span>
二、ServletContext对象
1、 ServletContext对象是由谁创建的
由Servlet容器负责创建,对于每个JavaWeb应用,在WEB容器启动时,Servlet容器都会为每个web应用程序创建一个ServletContext对象,它代表当前web应用。
2、servletContext对象的获取:
1)ServletContext对象被包含在ServletConfig对象中 所以可以通过ServletConfig 对象调用ServletConfig.getServletContext()获得对ServletContext对象的引用。
2)在继承了HttpServlet对象的类中 可以通过this.getServletContext来获取。
3、ServletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。ServletContext实例是通过 getServletContext()方法获得的,由于HttpServlet继承Servlet的关系GenericServlet类和 HttpServlet类同时具有该方法。每个应用都会有一个ServletContext对象与之关联,当容器分布在在多个虚拟机上时,web应用在所分布的每个虚拟机上都拥有一个ServletContext实例.缺省情况下,ServletContext不是分布式的,并且只存在于一个虚拟机上。
4、例子