JavaWeb 之 ServletConfig 接口

1、ServletConfig 接口

  一、简介

    ServletConfig 类,见名知意,就是 Servlet 程序的配置信息类。mysql

    Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责建立,供咱们使用的。sql

    Servlet 程序默认是第一次访问的时候建立,ServletConfig 是每一个 Servlet 程序建立时,就建立一个与之对应的 ServletConfig 对象。服务器

  二、接口的信息

    ServletConfig 这个类中声明了四个方法,能够看到这四个方法都是与 Servlet 有关的。app

    

   三、获取 ServletConfig 对象

    在 Servlet 接口的初始化方法,有一个 ServletConfig 类型的参数,同时还给提供了一个获取 ServletConfig 对象的方法。ide

                 

          

     在 GenericServlet 抽象类中,声明了一个 ServletConfig 类型的成员变量,并且对 ServletConfig 接口和 Servlet 接口中的方法进行了实现。url

      

         因此,只须要调用 ServletConfig() 方法就能够得到 ServletConfig 对象。spa

       可是,还要注意一点:若是在一个 继承 HttpServlet的 servlet 中重写了init()方法,那么在首行必定要调用父类 init(ServletConfig) 的操做,否则默认调用 GenericServlet 的无参构造,这样声明的 ServletConfig 成员变量就是 null,在 servlet 中使用会报错的。code

      没有重写 init(ServletConfig) 方法,正确打印:对象

      

      重写了可是没有调用 super.init(ServletConfig),获取空对象:blog

        

         

2、ServletConfig 类的三大做用

  一、能够获取 Servlet 程序的别名 servlet-name 的值

  二、能够获取 Servlet 初始化参数 init-param

  三、能够获取 ServletContext 对象

    Demo:

 1 <!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->  2 <servlet>  3 <!--servlet-name 标签 Servlet 程序起一个别名(通常是类名) -->  4 <servlet-name>HelloServlet</servlet-name><!--servlet-class 是 Servlet 程序的全类名-->  5 <servlet-class>com.servlet.HelloServlet</servlet-class>  6 <!--init-param 是初始化参数-->  7 <init-param>  8 <!--是参数名-->  9 <param-name>username</param-name> 10 <!--是参数值--> 11 <param-value>root</param-value> 12 </init-param> 13 <!--init-param 是初始化参数--> 14 <init-param> 15 <!--是参数名--> 16 <param-name>url</param-name> 17 <!--是参数值--> 18 <param-value>jdbc:mysql://localhost:3306/test</param-value> 19 </init-param> 20 </servlet> 21 <!--servlet-mapping 标签给 servlet 程序配置访问地址--> 22 <servlet-mapping> 23 <!--servlet-name 标签的做用是告诉服务器, 我当前配置的地址给哪一个 Servlet 程序使用--> 24 <servlet-name>HelloServlet</servlet-name> 25 <!-- 26  url-pattern 标签配置访问地址 <br/> 27  / 斜杠在服务器解析的时候, 表示地址为: http://ip:port/工程路径 <br/> 28  /hello 表示地址为: http://ip:port/工程路径/hello <br/> 29 --> 30 <url-pattern>/hello</url-pattern> 31 </servlet-mapping>

 

  Servlet 程序:

 1 @Override  2 public void init(ServletConfig servletConfig) throws ServletException {  3 System.out.println("2 init 初始化方法");  4 // 一、 能够获取 Servlet 程序的别名 servlet-name 的值  5 System.out.println("HelloServlet 程序的别名是:" + servletConfig.getServletName());  6 // 二、 获取初始化参数 init-param  7 System.out.println("初始化参数 username 的值是;" + servletConfig.getInitParameter("username"));  8 System.out.println("初始化参数 url 的值是;" + servletConfig.getInitParameter("url"));  9 // 三、 获取 ServletContext 对象 10  System.out.println(servletConfig.getServletContext()); 11 }
相关文章
相关标签/搜索