原文: 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

  1. import java.io.*;
  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. import java.util.Enumeration;
  5. public class DemoServlet extends HttpServlet {
  6. protected void doGet(HttpServletRequest request,
  7. HttpServletResponse response)
  8. throws ServletException, IOException
  9. {
  10. response.setContentType("text/html;charset=UTF-8");
  11. PrintWriter pwriter = response.getWriter();
  12. ServletConfig sc=getServletConfig();
  13. Enumeration<String> e=sc.getInitParameterNames();
  14. String str;
  15. while(e.hasMoreElements()) {
  16. str=e.nextElement();
  17. pwriter.println("<br>Param Name: "+str);
  18. pwriter.println(" value: "+sc.getInitParameter(str));
  19. }
  20. }
  21. }

web.xml

  1. <web-app>
  2. <display-name>BeginnersBookDemo</display-name>
  3. <welcome-file-list>
  4. <welcome-file>index.html</welcome-file>
  5. </welcome-file-list>
  6. <servlet>
  7. <servlet-name>MyServlet</servlet-name>
  8. <servlet-class>DemoServlet</servlet-class>
  9. <init-param>
  10. <param-name>MyName</param-name>
  11. <param-value>Chaitanya</param-value>
  12. </init-param>
  13. <init-param>
  14. <param-name>MyWebsite</param-name>
  15. <param-value>Beginnersbook.com</param-value>
  16. </init-param>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>MyServlet</servlet-name>
  20. <url-pattern>/scdemo</url-pattern>
  21. </servlet-mapping>
  22. </web-app>

输出:

`ServletConfig`接口 - 图1