1、每个Servlet都单独拥有一个属于自己的ServletConfig对象,用来获取web.xml中servlet的配置信息。
2、ServletConfig对象的获取和运用:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletConfig servletConfig=this.getServletConfig();//获取ServletConfig对象 String sc=servletConfig.getInitParameter("ServletConfig");//由配置文件中的键获取值 System.out.println(sc); }
<servlet> <servlet-name>ServletConfigDemo</servlet-name> <servlet-class>pers.zhb.logservlet.ServletConfigDemo</servlet-class> <init-param> <param-name>ServletConfig</param-name> <param-value>ni hao</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ServletConfigDemo</servlet-name> <url-pattern>/servletconfig</url-pattern> </servlet-mapping>
配置文件中的键和值要写在<servlet>标签内部,代表的是本Servlet自己所有。
运行结果为配置文件中的值:
3、ServletConfig对象与ServletContext对象在获取配置文件中的信息时的比较:
(1)不同点:
ServletConfig对象的参数在<servlet>标签内部,ServletContext对象的参数在外部:
ServletContext配置文件:
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>ServletDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/abc</url-pattern> </servlet-mapping> <context-param>//一组标签只能存储一组键值对 <param-name>zhai</param-name> <param-value>zhai1997</param-value> </context-param>
ServletConfig配置文件:
<servlet> <servlet-name>ServletConfigDemo</servlet-name> <servlet-class>pers.zhb.logservlet.ServletConfigDemo</servlet-class> <init-param> <param-name>ServletConfig</param-name> <param-value>ni hao</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ServletConfigDemo</servlet-name> <url-pattern>/servletconfig</url-pattern> </servlet-mapping>
(2)相同点:
都可以获取执行环境的相关数据,都是通过获取对象,由对象调用方法,由键获取值。