生命周期:和 Servlet 相同
由于它是在初始化阶段读取了web.xml中为Servlet准备的初始化配置,并把配置信息传递给Servlet,所以生命周期与Servlet相同
这里需要注意的是,如果Servlet配置了<load-on-startup>1</load-on-startup>,那么ServletConfig也会在应用加载时创建
ServletConfig的配置信息都是键值对的形式
在<servlet>标签中,通过<init-param>标签来配置。有两个子标签。
<param-name>:代表初始化参数的 key。
<param-value>:代表初始化参数的 value。
一个init-param配置一个信息,一个信息由name和value组成案例
package com.lichee.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ServletConfigDemo extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }配置Servlet
<!--配置Servlet--> <servlet> <servlet-name>servletConfigDemo</servlet-name> <servlet-class>com.lichee.servlet.ServletConfigDemo</servlet-class> <!--配置ServletConfig初始化参数--> <init-param> <!--用于获取初始化参数的key--> <param-name>encoding</param-name> <!--初始化参数的值--> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>desc</param-name> <param-value>This is ServletConfig</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>servletConfigDemo</servlet-name> <url-pattern>/servletConfigDemo</url-pattern> </servlet-mapping>常用方法:
返回值方法名说明StringgetInitParameter(String name)根据参数名称获取参数的值ServletContextgetServletContext()获取ServletContext对象代码展示:
public class ServletConfigDemo extends HttpServlet { //声明ServletConfig配置对象 private ServletConfig config; //通过init方法来为ServletConfig配置对象赋值 @Override public void init(ServletConfig config) throws ServletException { this.config = config; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //根据key获取value String encodingValue = config.getInitParameter("encoding"); System.out.println(encodingValue); //获取ServletContext对象 ServletContext context = config.getServletContext(); System.out.println(context); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }