初识ServletConfig(概念,生命周期),ServletConfig的配置方式以及常用方法

tech2026-04-07  2

ServletConfig基本概念

ServletConfig 是 Servlet 的配置参数对象,在 Servlet 的规范中,允许为每一个 Servlet 都提供一些初始化的配置。所以,每个 Servlet 都有一个自己的 ServletConfig作用:在 Servlet 的初始化时,把一些配置信息传递给 Servlet

生命周期

生命周期:和 Servlet 相同

由于它是在初始化阶段读取了web.xml中为Servlet准备的初始化配置,并把配置信息传递给Servlet,所以生命周期与Servlet相同

这里需要注意的是,如果Servlet配置了<load-on-startup>1</load-on-startup>,那么ServletConfig也会在应用加载时创建

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>

ServletConfig的常用方法

常用方法:

返回值方法名说明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); } }
最新回复(0)