有關(guān)ServletConfig與ServletContext的訪問
一般來說,對于整個應(yīng)用的配置,為了不使用"硬編碼",應(yīng)該使用ServletContext對象。
而如果只有一個特定的Servlet需要設(shè)定的參數(shù),其他Servlet不能訪問,那么一般要使用ServletConfig();
PS: 在使用ServletConfig對象的時候,在init()方法中,一定要用super類初始化ServletConfig對象。
public void init(ServletConfig config) throws ServletException { super.init(config); //TODO }
下面來逐個討論:
一、ServletContext對象
<context-param>元素:設(shè)定Context起始參數(shù)
在web.xml中,您可以利用<context-param>元素來定義Context起始參數(shù),它包含兩個子元素:
n <param-name>:定義Context起始參數(shù)名稱
n <param-value>:定義Context起始參數(shù)值
以下是<context-param>元素的使用范例,在本例中筆者定義了兩個Context起始參數(shù):
n driver_type:Web應(yīng)用程序欲使用的JDBC驅(qū)動程序名稱
n url:目標(biāo)數(shù)據(jù)庫位置
<web-app> <context-param> <param-name>driver_type</param-name> <param-value>oracle.jdbc.driver.OracleDriver</param-value> </context-param> <context-param> <param-name>url</param-name> <param-value>jdbc:oracle:thin:@IP:1521:SID</param-value> </context-param> </web-app>
有兩種方式存取Context起始參數(shù)的方式:
表1 在ServletContext接口中用來存取Context起始參數(shù)的方法
方法名稱 |
回傳類型 |
用 途 |
getInitParameter() |
String |
取得某個Context起始參數(shù)值 |
getInitParameterNames() |
java.util.Enumeration |
取得所有Context起始參數(shù) |
1. 先調(diào)用getServletConfig()方法取得ServletConfig對象,再利用ServletConfig接口定義的getServletContext()方法取得ServletContext對象。
ServletConfig config = getServletConfig(); ServletContext context = config.getServletContext();
String driver_type = context.getInitParameter("drvier_type"); String url=context.getInitParameter("url");
2. 直接調(diào)用getServletContext()方法取得ServletContext對象。
ServletContext context = getServletContext(); //獲得配置的參數(shù) String driver_type = context.getInitParameter("drvier_type"); String url=context.getInitParameter("url"); //獲得當(dāng)前WebApp的路徑 String path=context.getRealPath("/");
二, ServletConfig對象
<init-param>元素:設(shè)定init起始參數(shù)
在web.xml中,您可以利用<init-param>元素來定義Config起始參數(shù),它包含兩個子元素:
n <init-name>:定義Config起始參數(shù)名稱
n <init-value>:定義Config起始參數(shù)值
以下是<init-param>元素的使用范例,在本例中筆者定義了兩個Config起始參數(shù):
n driver_type:Web應(yīng)用程序欲使用的JDBC驅(qū)動程序名稱
n url:目標(biāo)數(shù)據(jù)庫位置
<web-app> <servlet> <servlet-name>testServlet</servlet-name> <servlet-class>com.simon.test.servlet.initparam.testServlet</servlet-class> <init-param> <param-name>driver_type</param-name> <param-value>oracle.jdbc.driver.OracleDriver</param-value> </init-param> <init-param> <param-name>url</param-name> <param-value>jdbc:oracle:thin:@IP:1521:SID</param-value> </init-param> <servlet-mapping> <servlet-name>testServlet</servlet-name> <url-pattern>/testServlet</url-pattern> </servlet-mapping> </web-app>
在init()方法中,應(yīng)該:
public void init(ServletConfig config) throws ServletException { //必須要繼承super類的init()方法 super.init(config); String filename=getServletConfig().getInitParameter("config-file"); //TODO }
以上這篇有關(guān)ServletConfig與ServletContext的訪問就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中IdentityHashMap與HashMap區(qū)別詳解
這篇文章主要介紹了Java中IdentityHashMap與HashMap區(qū)別詳解,很多人不曉得IdentityHashMap的存在,其中不乏工作很多年的Java開發(fā)者,他們看到就說是第三方j(luò)ar包,實際上它是Jdk源碼自帶的集合類,需要的朋友可以參考下2023-11-11MybatisPlus實現(xiàn)真正批量插入的詳細步驟
在數(shù)據(jù)庫操作中,批量插入是提升效率的重要手段,MyBatis-Plus提供了多種批量插入方法,但默認的saveBatch方法效率并不高,文章介紹了通過手動拼接SQL、使用IService接口以及自定義insertBatchSomeColumn方法進行優(yōu)化,以實現(xiàn)更高效的批量插入,并給出了性能優(yōu)化建議2024-10-10Spring Cloud Admin健康檢查 郵件、釘釘群通知的實現(xiàn)
這篇文章主要介紹了Spring Cloud Admin健康檢查 郵件、釘釘群通知的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08springboot如何使用assembly打包項目和啟動腳本
這篇文章主要介紹了springboot如何使用assembly打包項目和啟動腳本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06vue+springboot+shiro+jwt實現(xiàn)登錄功能
這篇文章主要介紹了vue+springboot+shiro+jwt實現(xiàn)登錄功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04Spring中的ImportBeanDefinitionRegistrar接口詳解
這篇文章主要介紹了Spring中的ImportBeanDefinitionRegistrar接口詳解,ImportBeanDefinitionRegistrar接口是也是spring的擴展點之一,它可以支持我們自己寫的代碼封裝成BeanDefinition對象,注冊到Spring容器中,功能類似于注解@Service @Component,需要的朋友可以參考下2023-09-09