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