ServletConfig属于Servlet中的辅助性内容,最重要的核心内容就是request和response,不过我们还是来讲讲这个ServletConfig的作用
ServletConfig
顾名思义,这个类一定是一个与配置有关的类,所以他的主要作用,是去配置文件web.xml中进行取值。
我们知道,当一个项目上线时,如果我们要进行更改,停止服务器修改后再上线时十分麻烦的。所以一般把一些可变的属性添加到配置文件中。
配置文件:
<servlet>
<description></description>
<display-name>ConfigServlet</display-name>
<servlet-name>ConfigServlet</servlet-name>
<servlet-class>com.yht.servlet.ConfigServlet</servlet-class>
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>message</param-name>
<param-value>HelloWorld</param-value>
</init-param>
</servlet>
必须配置在一个Servlet的Servlet配置中,中间的<init-param>中的就是配置的参数,中间的名字和值都是自定义的,一个为Key值,一个为Value值,一一对应,而且里面的存储方式类似于map结构,不能存储名字相同的属性。那么我们再去Servlet中取一下。
package com.yht.servlet;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ConfigServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//单个取值方式
ServletConfig config = this.getServletConfig();
String encode = config.getInitParameter("encode");
System.out.println(encode);
//全部取值方式
Enumeration<String> configs = config.getInitParameterNames();
while(configs.hasMoreElements()){
String name = configs.nextElement();
System.out.println(name+"-------"+config.getInitParameter(name));
}
}
}
UTF-8
encode-------UTF-8
message-------HelloWorld