# `ServletConfig`接口

> 原文： [https://beginnersbook.com/2017/07/servletconfig-interface-with-example/](https://beginnersbook.com/2017/07/servletconfig-interface-with-example/)

Servlet 容器在初始化期间为每个 Servlet 创建`ServletConfig`对象，以将信息传递给 Servlet。此对象可用于从部署描述符文件（`web.xml`）获取配置信息，例如参数名称和值。

## `ServletConfig`接口的方法

`public String getInitParameter(String name)`：以`String`形式返回给定参数的值，如果`web.xml`中不存在给定参数，则返回`null`。
`public Enumeration getInitParameterNames()`：返回所有参数名称的枚举。
`public String getServletName()`：返回 servlet 实例的名称。
`public ServletContext getServletContext()`：返回`ServletContext`的一个对象。

## 例：

在这个例子中，我们将使用两个方法`getInitParameter()`和`getInitParameterNames()`来获取`web.xml`中的所有参数及其值。

`getInitParameterNames()`方法返回所有参数名称的枚举，并通过在调用`getInitParameter()`方法期间传递这些名称，我们可以从`web.xml`获取相应的参数值。

`DemoServlet.java`

```java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Enumeration;

public class DemoServlet extends HttpServlet {

   protected void doGet(HttpServletRequest request, 
      HttpServletResponse response)
        throws ServletException, IOException 
   {

      response.setContentType("text/html;charset=UTF-8");
      PrintWriter pwriter = response.getWriter();
      ServletConfig sc=getServletConfig();

      Enumeration<String> e=sc.getInitParameterNames();
      String str;
      while(e.hasMoreElements()) {
        str=e.nextElement();
        pwriter.println("<br>Param Name: "+str);
        pwriter.println(" value: "+sc.getInitParameter(str));
      }
   }
}
```

`web.xml`

```java
<web-app>
 <display-name>BeginnersBookDemo</display-name>
 <welcome-file-list>
 <welcome-file>index.html</welcome-file>
 </welcome-file-list>
 <servlet>
 <servlet-name>MyServlet</servlet-name>
 <servlet-class>DemoServlet</servlet-class>
 <init-param>
 <param-name>MyName</param-name>
 <param-value>Chaitanya</param-value>

 </init-param>
 <init-param>
 <param-name>MyWebsite</param-name>
 <param-value>Beginnersbook.com</param-value>
 </init-param>
 </servlet>
 <servlet-mapping>
 <servlet-name>MyServlet</servlet-name>
 <url-pattern>/scdemo</url-pattern>
 </servlet-mapping>
</web-app>

```

**输出：**

![Servlet Config output](img/54e994894f5a9c1d7637c2ac2c7443b4.jpg)