天天看點

04JavaServlet-13. Servlet的上下文對象ServletContext

上下文對象

上下文對象概述及生命周期

上下文對象在項目中,是一個全局管理者.是單例的,隻有一個

在伺服器啟動的時候,伺服器會自動的為我們建立出來一個上下文對象.這個上下文對象始終存儲在伺服器上.當伺服器關閉,上下文對象銷毀.

上下文對象作為項目的全局管理者,可以服務于每一個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);      

繼續閱讀