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 }
相關文章
相關標籤/搜索