1.ServletConfig介绍
a.ServletConfig是Servlet的配置参数对象,在Servlet的规范中,允许为每一个Servlet都提供一些初始化的配置。所以,每个Servlet都有一个自己的ServletConfig
b.作用:在Servlet的初始化时,把一些配置信息传递给Servlet
c.生命周期:和Servlet相同
2.在web.xml
中配置方式如下
<!-- 配置Servlet-->
<servlet>
<servlet-name>ServletConfigDemo</servlet-name>
<servlet-class>com.itheima.ServletConfigDemo</servlet-class>
<!-- 配置ServletConfig的访问路径-->
<!-- 在初始化时传递-->
<!--每一个init-param标签,就表示一个键值对-->
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>desc</param-name>
<param-value>我是一个描述ServletConfig对象的属性</param-value>
</init-param>
</servlet>
3.ServletConfig的常用方法
【可以在Servlet类去获取ServletConfig对象,通过它的方法获取配置参数】
ServletConfig常用方法
getInitParameter(“encoding”)根据key获取value
getInitParameterNames()获取所有的key
servletConfig.getServletName()
servletConfig.getServletContext0()
public class ServletConfigDemo extends HttpServlet {
//1.获取ServletConfig对象
//方法一:声明ServletConfIg
/* private ServletConfig servletConfig;
//通过init方法,来对ServletConfig对象进行赋值
@Override
public void init() throws ServletException {
this.servletConfig = servletConfig;
}*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//方法二:getServletConfig()方法获取
ServletConfig servletConfig = this.getServletConfig();
String servletName = servletConfig.getServletName();
System.out.println(servletName);
//2.ServletConfig常用方法
//(1)getInitParameter("encoding")根据key获取value
String value = servletConfig.getInitParameter("encoding");
System.out.println(value);
//(2)getInitParameterNames()获取所有的key
//返回一个枚举对象
Enumeration<String> ParameterNames = servletConfig.getInitParameterNames();
//遍历方法1:
/*while (ParameterNames.hasMoreElements()) {
//获取每一个key
String paramName = ParameterNames.nextElement();
//根据key获取每一个value
String paramValue = servletConfig.getInitParameter(paramName);
System.out.println(paramName + "..." + paramValue);
}*/
//遍历方法2:使用迭代器遍历
Iterator<String> it = ParameterNames.asIterator();
while (it.hasNext()){
String paramName = it.next();
String paramValue = servletConfig.getInitParameter(paramName);
System.out.println(paramName + "..." + paramValue);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
打印结果:
-------------------------------------------------------------------
ServletConfigDemo
utf-8
encoding...utf-8
desc...我是一个描述ServletConfig对象的属性