Servlet里的 init(ServletConfig config)方法需要一个ServletConfig类型的参数,那么接下来我们就来跟Servlet好好的认识认识。
首先他代表Servlet在 web.xml中的配置信息,他有下面几个方法:
1.String getServletName–返回该servlet在web.xml中配置的名字,若没配置返回类名。
2.String getInitParameter–返回包含指定初始化参数的值的 String,如果参数不存在,则返回 null。
3. EnumerationgetInitParameterNames–以 String 对象的 Enumeration 的形式返回 servlet 的初始化参数的名称,如果 servlet 没有初始化参数,则返回一个空的 Enumeration。
4. ServletContext getServletContext()–获取代表当前web应用的ServletContext对象。
知道了他能干什么之后,下面我们就来看如何获取这个ServletConfig:
1.我们可以覆盖父类的init方法来拿到ServletConfig.
2.在doXXX中:其实人家父类已经封装好了,所以直接getServletConfig()就OK了。
ServletConfig config = this.getServletConfig();
doGet(request, response);
// --获取当前Servlet 在web.xml中配置的名称
String sName = config.getServletName();
System.out.println(sName);
// --获取当前Servlet中配置的初始化参数
String value = config.getInitParameter("name1");
System.out.println(value);//value1
Enumeration enumration = config.getInitParameterNames();
while (enumration.hasMoreElements()) {
String name = (String) enumration.nextElement();
String value1 = config.getInitParameter(name);
System.out.println(name + ":" + value1);//name1:value1 //encode:utf-8
}
web.xml中该Servlet的配置信息:
<servlet>
<servlet-name>SConfigServlet</servlet-name>
<servlet-class>com.itheima.SConfigServlet</servlet-class>
<init-param>
<param-name>name1</param-name>
<param-value>value1</param-value>
</init-param>
<init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>