ServletConfig是指目前servlet在web.xml檔案中的設定資訊。開發者透過ServletConfig物件就可以得到目前servlet的初始化參數資訊。
剛開始接觸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配置了初始化參數後,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是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!