servletconfig接口概念:
- servlet的配置对象,作用是获取与servlet的初始化参数
- 它的子类是genericservlet和httpservlet
- 它被实例化是通过web服务器实现的
与servletconfig相关的api中的常用方法:
- 获取servlet的初始化参数的值:getInitParameter(String name)
- 获取servlet的初始化参数的名称:getInitParameterNames()
- 得到servletcontext对象:getservletcontext()
- 获取servlet的名称:getservletname()
方法练习(servlet代码)
package cn.itcast.servlet;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TextServlet02
*/
@WebServlet("/test02")
public class TextServlet02 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.首先得到servletconfig对象
ServletConfig config=this.getServletConfig();
//2.获取servlet的名称,对应web.xml里面
String servletName=config.getServletName();
System.out.println("servlet的名称"+servletName);
//3.获取servlet的初始化参数
String value=config.getInitParameter("encoding");
System.out.println("初始化参数值:"+value);
//4.获取servlet的初始化参数的名称
Enumeration<String> er=config.getInitParameterNames();
while(er.hasMoreElements()) {
//获取初始化参数的名称
String name=er.nextElement();
//根据初始化参数的名称,获取对应的值
String value2=config.getInitParameter(name);
System.out.println("初始化参数的名称:"+name);
System.out.println("该名称的值:"+value2);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
配置web.xml
<servlet>
<servlet-name>text02</servlet-name>
<servlet-class>cn.itcast.servlet.TextServlet02</servlet-class>
<!-- servlet的初始化参数的配置 -->
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>username</param-name>
<param-value>xiaozhang</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>text02</servlet-name>
<url-pattern>/t/test02</url-pattern>
</servlet-mapping>
在浏览器中输入http://localhost:8080/chapter0310/t/test02****
运行结果