上下文對象
上下文對象概述及生命周期
上下文對象在項目中,是一個全局管理者.是單例的,隻有一個
在伺服器啟動的時候,伺服器會自動的為我們建立出來一個上下文對象.這個上下文對象始終存儲在伺服器上.當伺服器關閉,上下文對象銷毀.
上下文對象作為項目的全局管理者,可以服務于每一個servlet.
每一個servlet都可以随時随地的取得并使用上下文對象.
上下文對象的取得方式
* 取得上下文對象的方式:
*
* 取得方式1:
* ServletContext application = this.getServletConfig().getServletContext();
* 變量名:必須叫application
*
* 取得方式2:
* ServletContext application = this.getServletContext();
*
* 未來的實際項目開發,使用第二種方式來取得上下文對象,因為簡單友善.
* 注意:第二種方式,雖然沒有調用getServletConfig()方法,但是内部的實作原理仍然是先調用了getServletConfig()方法,隻不過在代碼中省略掉了而已.
*
* 第一種方式和第二種方式的實作原理是一模一樣的,第二種是第一種的簡寫形式.
上下文對象的常用方法
<!--
以下 配置為 配置全局參數
全局參數可以應用于所有的servlet
所有的servlet都可以通過上下文對象來使用這個全局參數
-->
<context-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</context-param>
- 域對象是用來做存取值操作的.
- 在域對象中儲存的值,隻要域對象沒有銷毀,那麼域對象中的值就始終存在
- 作為上下文域對象,取值範圍最廣泛.
- 當我們将值存放到上下文域對象中之後,上下文對象不銷毀,裡面存的值也始終存在.伺服器關閉,上下文對象銷毀,裡面的值也随之銷毀.域對象的存取值和值的是否銷毀,與浏覽器是否重新開機無關
- 域對象的常用方法:
- 存值: 域對象.setAttribute(String key,Object value)
- 取值: 域對象.getAttribute(String key) Object value
-
移除值: 域對象.removeAttribute(String key)
(3)擷取項目釋出路徑
getRealPath("/");
//擷取項目釋出路徑
ServletContext application = this.getServletContext();
String path = application.getRealPath("/");
System.out.println(path);