1. 程式人生 > >servlet的三大作用域物件和jsp的九大內建物件及其四大作用域物件

servlet的三大作用域物件和jsp的九大內建物件及其四大作用域物件

 

servlet的三大作用域物件:

request(HttpServletRequest)

session(HttpSession):

application(ServletContext):tomcat啟動時建立,tomcat關閉時銷燬,整個web的生命週期只有一個

括號內為其對應的類

jsp的九大內建物件:

pageContext(pageContext)也包含了另外八大物件的引用

request(HttpServletRequest)

session(HttpSession)

application(ServletContext)

response(HttpResponse)

config(ServletConfig)

out(JspWriter)

page(Object)

exception(Throwable)

括號內為其對應的類,這些物件都是存在於jsp中的,可以直接使用

 


jsp的四大作用域物件:

pageContext(pageContext)

request(HttpServletRequest)

session(HttpSession)

application(ServletContext)

括號內為其對應的類

jsp的四大作用域為:PageContext,ServletRequest,HttpSession,ServletContext;

PageContext域:作用範圍是整個JSP頁面,是四大作用域中最小的一個;生命週期是當對JSP的請求時開始,當響應結束時銷燬。

ServletRequest域:作用範圍是整個請求鏈(請求轉發也存在);生命週期是在service方法呼叫前由伺服器建立,傳入service方法。整個請求結束,request生命結束。

HttpSession域:作用範圍是一次會話。生命週期是在第一次呼叫request.getSession()方法時,伺服器會檢查是否已經有對應的session,如果沒有就在記憶體中建立一個session並返回。當一段時間內session沒有被使用(預設為30分鐘),則伺服器會銷燬該session。如果伺服器非正常關閉(強行關閉),沒有到期的session也會跟著銷燬。如果呼叫session提供的invalidate() ,可以立即銷燬session。

注意:伺服器正常關閉,再啟動,Session物件會進行鈍化和活化操作。同時如果伺服器鈍化的時間在session 預設銷燬時間之內,則活化後session還是存在的。否則Session不存在。  如果JavaBean 資料在session鈍化時,沒有實現Serializable 則當Session活化時,會消失。

ServletContext域:作用範圍是整個Web應用。當Web應用被載入進容器時建立代表整個web應用的ServletContext物件,當伺服器關閉或Web應用被移除時,ServletContext物件跟著銷燬。

作用域從小到大為:PageContext(jsp頁面),ServletRequest(一次請求),HttpSession(一次會話),ServletContext(整個web應用)。