jsp中 application 、EL表達式中applicationScope 、 Java中servletContext 關係

首先分別說說三者是什麼:java


  ①jsp中 application:數據庫

application 對象也是在服務器啓動就生成一個,服務器關閉,其才釋放。保證了用戶在不一樣的頁面間瀏覽能夠獲取共享的公共信息。安全


  ②EL表達式中applicationScope服務器

 ${applicationScope.bizCodes[category]}" ------------EL表達式session


   jsp中由於咱們並無指定哪個範圍的username,因此它會依序從Page、Request、Session、Application範圍查找。
  假如途中找到username,就直接回傳,再也不繼續找下去,可是假如所有的範圍都沒有找到時,就回傳null。
 屬性範圍在EL中的名稱app

         【jsp中】       【EL表達式中】                     
         Page          PageScope
         Request          RequestScope
         Session          SessionScope
         Application      ApplicationScopejsp

 

  ③Java中servletContextide

ServletContext,是一個全局的儲存信息的空間,服務器開始,其就存在,服務器關閉,其才釋放。request,一個用戶可有多個;session,一個用戶一個;而servletContext,全部用戶共用一個。因此,爲了節省空間,提升效率,ServletContext中,要放必須的、重要的、全部用戶須要共享的線程又是安全的一些信息。學習

換一種方式說吧,運行在Java虛擬機中的每個Web應用程序都有一個與之相關的Servlet上下文。ServletContext對象是Web服務器中的一個已知路徑的根,Servlet上下文被定位於http://localhost:8080/項目名.以 /項目名 請求路徑(稱爲上下文路徑)開始的全部請求被髮送到與此ServletContext關聯的Web應用程序。一個ServletContext對象表示了一個Web應用程序的上下文。this

Servlet上下文:Servlet上下文提供對應用程序中全部Servlet所共有的各類資源和功能的訪問。Servlet上下文API用於設置應用程序中全部Servlet共有的信息。Servlet可能須要共享他們之間的共有信息。運行於同一服務器的Servlet有時會共享資源,如JSP頁面、文件和其餘Servlet。


舉例:

地區信息等,全國的省市縣市固定的,全部咱們就能夠服務器啓動的時候,咱們就將數據放入servletContext中,避免屢次請求數據庫。



三者的區別:


其實學習前最好先學習Servlet,
是在Servlet基礎上發展而來的,jsp也是一種特殊的servlet。
其application對象在Servlet中是ServletContext的實例對象,
能夠在你寫的Servlet中經過this.getServletContext();方法來獲取一個ServletContext實例對象.
好比:
 this.getServletContext().setAttribute("users",userList);

而後在顯示層調用仍是使用application.getAttribute("users");
來實現.

因此全局變量在servlet中叫ServletContext;在jsp中叫application;而application在EL表達式中叫:applicationScope 。
相關文章
相關標籤/搜索