ServletConfig接口

来源:互联网 发布:软交换网络 编辑:程序博客网 时间:2024/05/18 01:35

Servlet接口的init(ServletConfig config)方法有一个ServletConfig类型的参数。当Servlet容器初始化一个Servlet对象时,会为这个Servlet对象创建一个ServletConfig对象。在ServletConfig对象中包含了Servlet的初始化参数信息,此外ServletConfig对象还与当前web应用的ServletContext对象关联。Servlet容器在调用Servlet对象的init(ServletConfig config)时,会把ServletConfig对象作为参数传给init方法,这样init(ServletConfig config)方法使得当前Servlet对象与ServletConfig对象之间建立起关联关系。

ServletConfig接口中定义了四个方法:

String getInitParameter(String name):根据给定的初始化参数名,返回匹配的初始化参数值。Enumeration getInitParameterNames():返回一个Enumeration对象,里面包含了所有的初始化参数名。ServletContext getServletContext():返回当前ServletCinfig关联的ServletContext对象,也即当前web应用的ServletContext对象。String getServletName():返回Servlet的名字,即web.xml文件中相应<servlet>的子元素<servlet-name>的值。
每个初始化参数包括一对参数名和参数值,在web.xml文件中配置一个Servlet时,可以通过<init-param>元素来设置初始化参数。<init-param>的子元素<param-name>设定参数名,<param-value>设定参数值。如下:
<servlet>    <servlet-name>FavouriteColorServlet</servlet-name>    <servlet-class>web.FavouriteColorServlet</servlet-class>    <init-param>    <param-name>color</param-name><param-value>Blue</param-value>    </init-param>  </servlet>  <servlet-mapping>    <servlet-name>FavouriteColorServlet</servlet-name>    <url-pattern>/color</url-pattern>  </servlet-mapping>

顺便写一个Servlet类示范如何取得初始化参数。

public class FavouriteColorServlet extends HttpServlet {protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String favouriteColor=getInitParameter("color");PrintWriter pw=response.getWriter();pw.println("<h3>my favourite color is:"+favouriteColor+"</h3>");pw.close();}}

部署完毕后,在浏览器地址栏输入http://localhost:8080/webDemo/color,浏览器返回一个页面,显示为:


HttpServlet类继承了GenericServlet类,而GenericServlet类实现了ServletConfig接口,所以在HttpServlet类或GenericServlet类及子类中都可以直接调用ServletConfig接口中的方法