ServletConfig对象详解
javax.servlet.ServletConfig 是SUN制定的Servlet规范中的接口。
Apache软件基金会开发的“Tomcat服务器”对javax.servlet.ServletConfig接口的实现类的完整类名是:org.apache.catalina.core.StandardWrapperFacade(程序员不需要关心这个类名,编程时是面向ServletConfig接口编程的)
ServletConfig对象的实例化过程
ServletConfig对象的创建过程:
Class c = Class.forName("com.bjpowernode.web.servlet.EmpQueryServlet");
Servlet servlet = (Servlet)c.newInstance();
ServletConfig config = new org.apache.catalina.core.StandardWrapperFacade();
servlet.init(config);
我们javaweb程序员在使用init方法中的ServletConfig对象的时候不需要关心具体是在哪个服务器中,我们是面向javax.servlet.ServletConfig 接口调用的。
一个Servlet对象就会关联一个ServletConfig对象。是一对一的关系,所以ServletConfig对象也是在单实例多线程的环境下运行。ServletConfig对象封装了Servlet对象的配置信息。也就是说ServletConfig对象包含了Servlet类在web.xml文件的标签中配置的信息。
ServletConfig接口中常用的方法:
a) 通过初始化参数的name获取初始化参数的value
i. String paramValue = config.getInitParameter(String name);
b) 获取所有初始化参数的name
i. Enumeration paramNames = config.getInitParameterNames();
c) 通过ServletConfig对象获取ServletContext对象
i. ServletContext application = config.getServletContext();
如果想通过ServletConfig对象获取初始化参数,必须在对应的web.xml文件中有相关的配置信息
<servlet>
<servlet-name>empQueryServlet</servlet-name>
<servlet-class>com.bjpowernode.web.servlet.EmpQueryServlet</servlet-class>
<init-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://127.0.0.1:3306/bjpowernode</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>empQueryServlet</servlet-name>
<url-pattern>/empQuery</url-pattern>
</servlet-mapping>