JSP的四大域物件
一、ServletContext
1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。
2、作用範圍:整個Web應用。
3、作用:
a)在不同Servlet 之間轉發
this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request, response);
方法執行結束,service就會返回到伺服器,再有伺服器去呼叫目標servlet,其中request會重新建立,並將之前的request的資料拷貝進去。
b)讀取資原始檔。
1、由於相對路徑預設相對的是java虛擬機器啟動的目錄,所以我們直接寫相對路徑將會是相對於tomcat/bin目錄,所以是拿不到資源的。
如果寫成絕對路徑,當專案釋出到其他環境時,絕對路徑就錯了。
2、為了解決這個問題ServletContext提供了:
this.getServletContext().getRealPath("/1.properties"),給進一個資源的虛擬路徑,將會返回該資源在當前環境下的真實路徑。
this.getServletContext().getResourceAsStream("/1.properties"),給一個資源的虛擬路徑返回到該資源真實路徑的流。
3、當在非servlet下獲取資原始檔時,就沒有ServletContext物件用了,此時只能用類載入器
classLoader.getResourceAsStream("../../1.properties"),此方法利用類載入器直接將資源載入到記憶體中,有更新延遲的問題,
以及如果檔案太大,佔用記憶體過大。
classLoader.getResource("../1.properties").getPath(),直接返回資源的真實路徑,沒有更新延遲的問題。
二、Request 域
1、生命週期:在service 方法呼叫前由伺服器建立,傳入service方法。整個請求結束,request生命結束。
2、作用範圍:整個請求鏈(請求轉發也存在)。
3、作用: 在整個請求鏈中共享資料。最常用到:在Servlet 中處理好的資料交給Jsp顯示,此時引數就可以放置在Request域中帶過去。
三、Session 域
HttpSession 在伺服器中,為瀏覽器建立獨一無二的記憶體空間,在其中儲存會話相關的資訊。
1、生命週期:在第一次呼叫 request.getSession() 方法時,伺服器會檢查是否已經有對應的session,如果沒有就在記憶體 中建立一個session並返回。
當一段時間內session沒有被使用(預設為30分鐘),則伺服器會銷燬該session。
如果伺服器非正常關閉(強行關閉),沒有到期的session也會跟著銷燬。
如果呼叫session提供的invalidate() ,可以立即銷燬session。
注意:伺服器正常關閉,再啟動,Session物件會進行鈍化和活化操作。同時如果伺服器鈍化的時間在session 預設銷燬時間之內,
則活化後session還是存在的。否則Session不存在。 如果JavaBean 資料在session鈍化時,沒有實現Serializable 則當Session活化時,會消失。
2、作用範圍:一次會話。
四、PageContext 域
1、生命週期:當對JSP的請求時開始,當響應結束時銷燬。
2、作用範圍:整個JSP頁面,是四大作用域中最小的一個。
作用:
(1)獲取其它八大隱式物件,可以認為是一個入口物件。
(2)獲取其所有域中的資料
pageContext 操作所有域中屬性的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
pageContext 中代表域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
findAttribute方法,在四大域中搜尋屬性,搜尋的順序是page域、request域、session域、application域,
從小域到大域開始搜尋,如果搜尋到就直接獲取該值,如果所有域中都找不到,返回一個null(與el表示式不同,此處返回null,對網頁是不友好的)
(3)跳轉到其他資源 其身上提供了forward和include方法,簡化重定向和轉發的操作
轉載:
一、ServletContext
1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。
2、作用範圍:整個Web應用。
3、作用:
a)在不同Servlet 之間轉發
this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request, response);
方法執行結束,service就會返回到伺服器,再有伺服器去呼叫目標servlet,其中request會重新建立,並將之前的request的資料拷貝進去。
b)讀取資原始檔。
1、由於相對路徑預設相對的是java虛擬機器啟動的目錄,所以我們直接寫相對路徑將會是相對於tomcat/bin目錄,所以是拿不到資源的。
如果寫成絕對路徑,當專案釋出到其他環境時,絕對路徑就錯了。
2、為了解決這個問題ServletContext提供了:
this.getServletContext().getRealPath(“/1.properties”),給進一個資源的虛擬路徑,將會返回該資源在當前環境下的真實路徑。
this.getServletContext().getResourceAsStream(“/1.properties”),給一個資源的虛擬路徑返回到該資源真實路徑的流。
3、當在非servlet下獲取資原始檔時,就沒有ServletContext物件用了,此時只能用類載入器
classLoader.getResourceAsStream(“../../1.properties”),此方法利用類載入器直接將資源載入到記憶體中,有更新延遲的問題,
以及如果檔案太大,佔用記憶體過大。
classLoader.getResource(“../1.properties”).getPath(),直接返回資源的真實路徑,沒有更新延遲的問題。
二、Request 域
1、生命週期:在service 方法呼叫前由伺服器建立,傳入service方法。整個請求結束,request生命結束。
2、作用範圍:整個請求鏈(請求轉發也存在)。
3、作用: 在整個請求鏈中共享資料。最常用到:在Servlet 中處理好的資料交給Jsp顯示,此時引數就可以放置在Request域中帶過去。
三、Session 域
HttpSession 在伺服器中,為瀏覽器建立獨一無二的記憶體空間,在其中儲存會話相關的資訊。
1、生命週期:在第一次呼叫 request.getSession() 方法時,伺服器會檢查是否已經有對應的session,如果沒有就在記憶體 中建立一個session並返回。
當一段時間內session沒有被使用(預設為30分鐘),則伺服器會銷燬該session。
如果伺服器非正常關閉(強行關閉),沒有到期的session也會跟著銷燬。
如果呼叫session提供的invalidate() ,可以立即銷燬session。
注意:伺服器正常關閉,再啟動,Session物件會進行鈍化和活化操作。同時如果伺服器鈍化的時間在session 預設銷燬時間之內,
則活化後session還是存在的。否則Session不存在。 如果JavaBean 資料在session鈍化時,沒有實現Serializable 則當Session活化時,會消失。
2、作用範圍:一次會話。
四、PageContext 域
1、生命週期:當對JSP的請求時開始,當響應結束時銷燬。
2、作用範圍:整個JSP頁面,是四大作用域中最小的一個。
作用:
(1)獲取其它八大隱式物件,可以認為是一個入口物件。
(2)獲取其所有域中的資料
pageContext 操作所有域中屬性的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
pageContext 中代表域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
findAttribute方法,在四大域中搜尋屬性,搜尋的順序是page域、request域、session域、application域,
從小域到大域開始搜尋,如果搜尋到就直接獲取該值,如果所有域中都找不到,返回一個null(與el表示式不同,此處返回null,對網頁是不友好的)
(3)跳轉到其他資源 其身上提供了forward和include方法,簡化重定向和轉發的操作
相關推薦
JSP四大域物件
JSP的四大域物件:pageContext、request、session、application 這四個域物件都提供了一對相同的方法: 設定一個屬性: setAttribute(“屬性名”,“屬性值”); 獲取一個屬性: getAttribute(“屬性名”); 一、pageConte
jsp之九大內建物件與四大域物件
一,什麼是內建物件? 在jsp開發中會頻繁使用到一些物件,如ServletContext HttpSession PageContext等.如果每次我們在jsp頁面中需要使用這些物件都要自己親自動手建立就會特別的繁瑣.SUN公司因此在設計jsp時,在jsp頁面載
JSP的四大域物件
一、ServletContext 1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。 2、作用範圍:整個Web應用。 3、作用: a)在不同
jsp九大內建物件與四大域物件(轉載)
一,什麼是內建物件? 在jsp開發中會頻繁使用到一些物件,如ServletContext HttpSession PageContext等.如果每次我們在jsp頁面中需要使用這些物件都要自己親自動手建立就會特別的繁瑣.SUN公司因此在設計jsp時,在jsp頁面載入完畢之後自
淺談JSP中JSTL【標籤庫】常用標籤,EL表示式在JSP四大域中取值:
宣告:本測試使用的Tomcat9,JDK9 建立web4.0專案進行測試: EL表示式中字串【能轉為數字的】會自動強轉: EL表示式的全稱: Expression Language ;作用
Java四大域物件詳解(ServletContext、Session、Request、pageContext域物件)
一、ServletContext 1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。 2、作用範圍:整個Web應用。 3、作用:
Page,request,session,application四大域物件詳解
一、ServletContext 1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。 2、作用範圍:整個Web應用(應用範圍)。
Java四大域物件
Java四大域物件(侵刪) 一、ServletContext 1.生命週期:當WEB應用被載入進容器建立代表整個WEB應用的ServletContext物件, 當伺服器關閉或WEB應用被移除時,ServletContext物件跟著被銷燬。 2.作用範圍:整個WEB應用。 3.在不同Ser
servlet中的四大域物件
1.域物件的作用: 用於儲存資料,獲取資料。可以在不同的動態資源之間共享資料。 案例1: Servlet1(用於傳引數) Servlet2(用於獲取引數) name=“zhangsan”
四大域物件和9大隱式物件
1.四大作用域:一.ServletContext(ServletContext類)①在jsp中為 application②生命週期:1.開始:web應用啟動時建立整個web中的ServletContext物件.2.死亡:伺服器關閉或Web應用被移除時,ServletCont
JAVA 四大域物件總結
一、ServletContext 1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。 2、作用範圍:整個Web應用(應用範圍
JavaWeb中四大域物件的作用範圍
JavaWeb的四大作用域為:PageContext,ServletRequest,HttpSession,ServletContext; PageContext域:作用範圍是整個JSP頁面,是四大作用域中最小的一個;生命週期是當對JSP的請求時開始,當響應結束時銷燬。
通過案例比較四大域物件的作用域
pageContext的作用域只在當前頁面: 重點: pageContext可以操作其他三大域物件 pageContext.setAttribute("p","request",PageContext.REQUEST_SCOPE); 等同於req.se
JavaWeb的四大域物件總結
四個域的作用域範圍大小:PageContext (page域) < request < session < servletContext(application域) 一、ServletContext 1、生命週期:當Web應用被載入進容器時建立代表整個w
Servlet的四大域物件
我們在開發javaweb專案的時候,經常會遇到jsp和Servet之間互相傳值,既然有傳值,就要有物件來傳,這裡先說Servlet的三大域物件,request,session,application他們共同的特點都是通過鍵值對傳值,這樣也很好理解,鍵是唯一的,通過鍵可以找到值
javaweb中四大域物件的生命週期與常用方法
一、ServletContext 1、生命週期:當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。 2、作用範圍:整個Web應用。 3、作用: a)在不同Servl
servlet的三大作用域物件和jsp的九大內建物件及其四大作用域物件
servlet的三大作用域物件: request(HttpServletRequest) session(HttpSession): application(ServletContext):tomcat啟動時建立,tomcat關閉時銷燬,整個web的生命週期只有一個
jsp四大作用域和九大物件
jsp四大作用域和九大物件 詳情檢視我的腦圖 四個作用域:request域、session域、application域、page域 1. request request是表示一個請求,只要發出一個請求就會建立一個request,它的作用域:僅在當前請求中有效。 應用場景
JSP九大物件、四大作用域、常用物件方法
String getId() 獲取sessionid void setMaxInactiveInterval(int interval) 設定session的非活動時間 int getMaxInactiveInterval() 獲取session的有效非活動時間(以 秒為單位) void invalidat
servlet三大作用域 jsp四大作用域 jsp九個內建物件 el表示式11個隱藏物件
Servlet三個作用域 *request -->表示一個請求,只要發出一個請求就會建立一個request,它的作用域:僅在當前請求中有效。 *session -->伺服器會為每個會話建立一個session物件,所以session中的資料可供當前會話中所有servlet共享。會話