1、什么是config对象?
(1) config对象:用于获取初始化参数。
具体来说:如果在web.xml文件中,针对某个Servlet文件或JSP文件设置了初始化参数,则可以通过config对象来获取这些初始化参数。
(2) config对象的基类是:javax.servlet.ServletConfig接口。
(3) config对象的常用方法,如下所示:
方法名 | 描述 |
String getInitParameter(String name) | 根据指定的初始化参数名称,获取对应的参数值。 |
Enumeration getInitParameterNames() | 获取所有的初始化参数名称。 |
ServletContext getServletContext() | 返回一个ServletContext接口的对象 |
String getServletName() | 获取当前Servlet对象的名称。 |
2、使用config对象获取初始化参数
(1) 获取某个JSP文件的初始化参数
测试代码
TestConfig01.jsp
<%@page contentType="text/html;charset=GB2312"%>
<html>
<body>
<p>客户服务信箱:<%=config.getInitParameter("email")%>
<p>客户服务热线:<%=config.getInitParameter("phone")%>
<p>客户服务QQ号:<%=config.getInitParameter("qq")%>
</body>
</html>
修改web.xml文件,添加如下蓝色字体部分:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"
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_2_5.xsd">
<display-name>当当网</display-name>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.niit.csmz.Login</servlet-class>
</servlet>
<servlet>
<servlet-name>Result</servlet-name>
<servlet-class>com.niit.csmz.Result</servlet-class>
</servlet>
<servlet>
<servlet-name>admin</servlet-name>
<jsp-file>/TestConfig01.jsp</jsp-file>
<init-param>
<param-name>email</param-name>
<param-value>service@abc.com</param-value>
</init-param>
<init-param>
<param-name>phone</param-name>
<param-value>0411-12345678</param-value>
</init-param>
<init-param>
<param-name>qq</param-name>
<param-value>88888</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Forward/servlet/Login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Result</servlet-name>
<url-pattern>/servlet/Result</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>admin</servlet-name>
<url-pattern>/TestConfig01.jsp</url-pattern>
</servlet-mapping>
<context-param>
<param-name>appName</param-name>
<param-value>MyWebTest</param-value>
</context-param>
<context-param>
<param-name>appVersion</param-name>
<param-value>Version 1.0</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(2) 获取某个Servlet文件的初始化参数
测试代码
创建一个名为Config的Servlet文件,代码如下所示:
package com.niit.csmz;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import java.io.PrintWriter;
publicclass Config extends HttpServlet {
privatestatic finallong serialVersionUID =-623285226021156806L;
public Config() {
super();
}
publicvoid init() throws ServletException {
super.init();
}
publicvoid destroy() {
super.destroy();
}
publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
doPost(request, response);
}
publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
ServletConfig sc = this.getServletConfig();
String email = sc.getInitParameter("email");
String phone = sc.getInitParameter("phone");
String qq = sc.getInitParameter("qq");
response.setContentType("text/html;charset=gb2312");
PrintWriter pw = response.getWriter();
pw.write("<p>客户服务信箱:" + email);
pw.write("<p>客户服务热线:" + phone);
pw.write("<p>客户服务QQ号:" + qq);
}
}
修改web.xml文件,添加如下蓝色字体部分:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"
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_2_5.xsd">
<display-name>当当网</display-name>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.niit.csmz.Login</servlet-class>
</servlet>
<servlet>
<servlet-name>Result</servlet-name>
<servlet-class>com.niit.csmz.Result</servlet-class>
</servlet>
<servlet>
<servlet-name>admin</servlet-name>
<jsp-file>/TestConfig01.jsp</jsp-file>
<init-param>
<param-name>email</param-name>
<param-value>service@abc.com</param-value>
</init-param>
<init-param>
<param-name>phone</param-name>
<param-value>0411-12345678</param-value>
</init-param>
<init-param>
<param-name>qq</param-name>
<param-value>88888</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>Config</servlet-name>
<servlet-class>com.niit.csmz.Config</servlet-class>
<init-param>
<param-name>email</param-name>
<param-value>service@abc.com</param-value>
</init-param>
<init-param>
<param-name>phone</param-name>
<param-value>0411-12345678</param-value>
</init-param>
<init-param>
<param-name>qq</param-name>
<param-value>88888</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Forward/servlet/Login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Result</servlet-name>
<url-pattern>/servlet/Result</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>admin</servlet-name>
<url-pattern>/TestConfig01.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Config</servlet-name>
<url-pattern>/servlet/Config</url-pattern>
</servlet-mapping>
<context-param>
<param-name>appName</param-name>
<param-value>MyWebTest</param-value>
</context-param>
<context-param>
<param-name>appVersion</param-name>
<param-value>Version 1.0</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
3、application对象和config对象的区别
(1) 使用application对象只能获取<context-param>设定的初始化参数,因为application对象处理的是整个Web应用程序的环境信息。
(2) 使用config对象只能获取<init-param>设定的初始化参数,因为config对象处理的是单个Servlet文件或JSP文件。