servletConfig对象
当Tomcat初始化一个servlet时,会将servlet配置信息封装到一个servletConfig对象中;
<servlet>
<servlet-name>servletName</servlet-name>
<servlet-class>servletClass</servlet-class>
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
1.获取servlet标签中init-param标签的配置信息;
Config.getInitParameter(“key”);
2.获取servlet标签中所有param-name的值;
Config.getInitParameterNames();获取的一个枚举类型;
案例:获取init-param标签中所有param-name的值以及其配置信息,并在客户浏览器响应;
package com.bjsxt.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
/**
* 通过servletConfig对象读取配置信息
*
* */
public class GetConfigInfoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取servletConfig对象;
ServletConfig servletConfig = this.getServletConfig();
// 获取servlet标签中所有的init-param标签的值
Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
PrintWriter out = resp.getWriter();
out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
out.println("<HTML>");
out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>");
out.println("<BODY>");
while(initParameterNames.hasMoreElements()){
String key = initParameterNames.nextElement();
out.println("key:"+key+"value:"+servletConfig.getInitParameter(key)+"<br/>");
}
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
Xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>getConfigInfoServlet</servlet-name>
<servlet-class>com.bjsxt.servlet.GetConfigInfoServlet</servlet-class>
<init-param>
<param-name>key1</param-name>
<param-value>value1</param-value>
</init-param>
<init-param>
<param-name>key2</param-name>
<param-value>value2</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>getConfigInfoServlet</servlet-name>
<url-pattern>/config.do</url-pattern>
</servlet-mapping>
</web-app>
servletConfig对象与ServletContext对象的区别;
1.获取的标签名称不同;
ServletContext对象获取的标签名称为context-param
servletConfig对象获取的标签名称为init-param
2.servletConfig对象获取的标签必须包含在servlet标签内,而servletContext对象获取的 标签则与servlet标签平级;
3.在ServletContext中存储的数据,该web应用中的所有servlet都可以通过ServletContext 对象获取到;而servletConfig则不行;
感谢您的观看;