首页 > 技术文章 > ServletConfig

changrunwei 2018-12-03 14:34 原文

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

 

推荐阅读