下图为实现了Servlet接口的一个Servlet实现类,里面有该类默认的方法。参与Servlet生命周期的方法有:init方法、service方法、destroy方法
本文讲的是init方法的参数:ServletConfig对象
1.ServletConfig对象是什么
ServletConfig对象是Servlet对象的配置信息,是servlet对象的初始化参数。这些配置信息是通过<init-param>标签在web.xml中配置的。
<servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> <init-param> <param-name>name</param-name> <param-value>gacl</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>123</param-value> </init-param> <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> <load-on-startup></load-on-startup> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern></url-pattern> </servlet-mapping>
当web容器在创建Servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用Servlet的init方法时,将ServletConfig对象传递给Servlet。进而,我们通过ServletConfig对象就可以得到当前Servlet的初始化参数信息。
2.如何在service方法中使用ServletConfig对象
1)定义实例变量ServletConfig config
2)在init方法中将局部变量赋值给实例变量
3.如何在子类中使用ServletConfig对象
实现getServletConfig方法,在子类中调用此方法
import java.io.IOException; import java.util.Enumeration; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class DefaultServletMethods implements Servlet { /** * 定义ServletConfig对象来接收配置的初始化参数 */ private ServletConfig config; @Override public void destroy() { } @Override public ServletConfig getServletConfig() { return config;//返回实例变量 } @Override public String getServletInfo() { return null; } @Override public void init(ServletConfig arg0) throws ServletException { this.config = arg0; } @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { // 获取在web.xml中配置的初始化参数 // 1.获取指定的初始化参数 String paramVal = this.config.getInitParameter("name"); // 2.获取所有的初始化参数 Enumeration<String> e = config.getInitParameterNames(); while (e.hasMoreElements()) { String name = e.nextElement(); String value = config.getInitParameter(name); } } }
4.Servlet和ServletConfig的关系
一个Servlet对象会对应一个ServletConfig对象
5.ServletConfig对象中有哪些方法
ServletConfig对象一共有4个方法
1)String getInitParameter("name"):通过初始化参数的name获取value值
2)Enumeration<String> getInitParameterNames():获取所有初始化参数的name
3)String getServletName():获取Servlet对的名字<servlet-name>名字</servlet-name>
4)ServletContext getServletContext():通过ServletConfig对象获取ServletContext对象