1. 程式人生 > >如何通過Servlet獲取定義在web.xml中的初始化引數

如何通過Servlet獲取定義在web.xml中的初始化引數

先理一理大致的流程,我們的目的是客戶端通過jsp頁面請求web.xml中的資料。

首先,我們得在web.xml中定義初始化資料吧,不然使用者就要請求空資料了。

那麼,說到web.xml,究竟是個什麼玩意呢?我也不是很清楚,也沒怎麼了解。

我只知道它是一個和web工程有關的配置文件,今天我們只要用到它配置一下Servlet就好了。

接下來,我們就建立這個web.xml吧。如何建立?很簡單,只要建立一個Servlet,順帶勾選建立web.xml的選項就好了。

在哪裡建立servlet?咋感覺你的問題一大堆啊,哥。哈哈哈!

在web工程Src資料夾下的任意位置都可以建立啊。那麼問題又來了,,,

哥,別說了。我知道,web工程在哪裡建立,對不對?

對你個大頭鬼啊,web工程都不會建立,你還寫什麼web,這是最基礎的好不好。

開篇到這裡也就差不多了,沒辦法,有些人就是那麼傻,哈哈哈,下面我從建立Web工程專案開始,給出整個例項的過程。

1 建立一個Web projecet,命名為 ServletGetInitParameter
2 修改 WebRoot -> index.jsp 的body內容為

<body>
    <h1>獲取初始化引數示例</h1><br>
    <a href="servlet/GetInitParameter"
>
獲取初始化引數</a> </body>

3 在src下建一個包,在包下面建一個servlet類,命名為 GetInitParameter,當建立完之後在WebRoot->WEB-INF 下面就會生成web.xml。
這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述

4 開啟web.xml,裡面已經有servlet的預設配置了。要新增的自定義資料就載入裡面。
新增自定義資料前servlet預設配置

<servlet>
    <description>This is the description of my J2EE component</description>
    <display-name
>This is the display name of my J2EE component</display-name> <servlet-name>GetInitParameter</servlet-name> <servlet-class>servlet.GetInitParameter</servlet-class> </servlet> <servlet-mapping> <servlet-name>GetInitParameter</servlet-name> <url-pattern>/servlet/GetInitParameter</url-pattern> </servlet-mapping>

新增自定義資料後的servlet預設配置,加了,其中包含了username變數和password變數的值。admin,123456

<servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>GetInitParameter</servlet-name>
    <servlet-class>servlet.GetInitParameter</servlet-class>
    <init-param>
        <param-name>username</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>password</param-name>
        <param-value>123456</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>GetInitParameter</servlet-name>
    <url-pattern>/servlet/GetInitParameter</url-pattern>
  </servlet-mapping>

5 在GetInitParameter Servlet 類中新增兩個私有變數,username和password並建立各自的setter和getter方法。username和password分別用來儲存web.xml中自定義的資料。

    private String username;
    private String password;
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

5 在init()方法中新增以下程式碼。getInitParameter()方法是獲取web.xml中屬於的介面方法。

    public void init() throws ServletException {
        // Put your code here
        this.setUsername(this.getInitParameter("username"));
        this.setPassword(this.getInitParameter("password"));    
    }

6 在doGet方法中新增以下程式碼。

    response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        out.println("使用者名稱:"+this.username+"<br>");
        out.println("密碼:"+this.password);

7 文件通通儲存。部署web工程並啟動tomcat伺服器。
開啟瀏覽器,輸入url:http://127.0.0.1:10086/ServletGetInitParameter/index.jsp
這邊要說的是,伺服器埠可以自己定義。我改的是10086,預設埠是8080。
正常的介面應該如下
這裡寫圖片描述

點選 獲取初始化引數

這裡寫圖片描述

8 完了,就這樣,例項演示完畢!我剛剛乾了一件事情,我把之前圖片上的水印都去掉了。