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(); } }