ServletConfig
ServletConfig是个别Servlet的设置信息对象。
使用注解设置个别Servlet的初始参数,可以在@WebServlet中使用@WebInitParam设置initParams属性。
在web.xml中设置个别Servlet的初始参数,可以在<servlet>标签中使用<init-param>等标签进行设置,web.xml中的设置会覆盖注解的设置。
用web.xml覆盖注解设置,web.xml的<servlet-name>设置必须与@WebServlet的name属性相同。
ServletConfig API
ServletConfig定义了getInitParameter()、getInitParameterNames()方法,可以取得设置Servlet时的初始参数。
Demo
package com.test; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Enumeration; @WebServlet(urlPatterns = "/servletDemo", name = "servletDemo", loadOnStartup = 1, initParams = {@WebInitParam(name="param", value = "value")}) public class ServletDemo extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { Enumeration<String> initParameterNames = getServletConfig().getInitParameterNames(); while (initParameterNames.hasMoreElements()) { String element = initParameterNames.nextElement(); response.getWriter().println(getServletConfig().getInitParameter(element)); } } }
<?xml version="1.1" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>servletDemo</servlet-name> <servlet-class>com.test.ServletDemo</servlet-class> <init-param> <param-name>param</param-name> <param-value>webParam1</param-value> </init-param> <init-param> <param-name>param2</param-name> <param-value>webParam2</param-value> </init-param> </servlet> </web-app>
响应结果
webParam1
webParam2