首頁  >  文章  >  Java  >  ServletConfig是什麼

ServletConfig是什麼

(*-*)浩
(*-*)浩原創
2019-05-05 18:17:417262瀏覽

ServletConfig是指目前servlet在web.xml檔案中的設定資訊。開發者透過ServletConfig物件就可以得到目前servlet的初始化參數資訊。

ServletConfig是什麼

剛開始接觸Spring MVC框架,對框架了解之後很想知道這個框架是怎麼運行,就慢慢地摸索著看看源碼。第一個攔路虎就是Servletconfig。發現在servlet的實作類別中經常出現。不只要問這個是做什麼的?

推薦課程:Java教學

ServletConfig

ServletConfig代表的是目前servlet在web.xml中的設定訊息

String getServletName()  -- 获取当前Servlet在web.xml中配置的名字
String getInitParameter(String name) -- 获取当前Servlet指定名称的初始化参数的值
Enumeration getInitParameterNames()  -- 获取当前Servlet所有初始化参数的名字组成的枚举
ServletContext getServletContext()  -- 获取代表当前web应用的ServletContext对象

在Servlet的設定檔中,可以使用一個或多個標籤為servlet設定一些初始化參數。

當servlet配置了初始化參數後,web容器在建立servlet實例物件時,會自動將這些初始化參數封裝到ServletConfig物件中,並在呼叫 servlet的init方法時,將ServletConfig物件傳遞給servlet。進而,程式設計師透過ServletConfig物件就可以得到目前servlet的初始化參數資訊。

這樣做的好處是:如果將資料庫資訊、編碼方式等設定資訊放在web.xml中,如果以後資料庫的使用者名稱、密碼改變了,則直接很方便地修改web .xml就行了,避免了直接修改原始碼的麻煩。

程式碼實例:

<servlet>
        <servlet-name>ServletConfigTest</servlet-name>
        <servlet-class>com.vae.servlet.ServletConfigTest</servlet-class>
        <init-param>
            <param-name>name1</param-name>
            <param-value>value1</param-value>
        </init-param>
        <init-param>
            <param-name>encode</param-name>
            <param-value>utf-8</param-value>
        </init-param>
</servlet>

然後在程式碼中取得上面的兩個參數。程式碼實作如下:

package com.vae.servlet;
 
import java.io.IOException;
import java.util.Enumeration;
 
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class ServletConfigTest extends HttpServlet {
 
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        ServletConfig config = this.getServletConfig();  //拿到init方法中的ServletConfig对象
 
        // --获取当前Servlet 在web.xml中配置的名称(用的不多)
         String sName = config.getServletName();
         System.out.println("当前Servlet 在web.xml中配置的名称:"+sName);
         
        // --获取当前Servlet中配置的初始化参数(只能获取一个)经常用到
        // String value = config.getInitParameter("name2");
        // System.out.println(value);
 
        // --获取当前Servlet中配置的初始化参数(全部获取)经常用到
         Enumeration enumration = config.getInitParameterNames();
         while(enumration.hasMoreElements()){
         String name = (String) enumration.nextElement();
         String value = config.getInitParameter(name);
         System.out.println(name+":"+value);
         }
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

核心程式碼是第17行,透過this.getServletConfig()方法拿到init方法中的ServletConfig對象,然後取得設定資訊。

執行程序,後台列印日誌如下:

ServletConfig是什麼

以上是ServletConfig是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn