四大域物件和9大隱式物件
一.ServletContext(ServletContext類)
①在jsp中為 application
②生命週期:
1.開始:web應用啟動時建立整個web中的ServletContext物件.
2.死亡:伺服器關閉或Web應用被移除時,ServletContext跟著銷燬
③作用範圍:
整個web應用中
④作用(用途):
1.身為作用域,儲存可以作用於整個web應用範圍的資料
2.用於獲取絕對路徑:獲取web-inf下的1.properties的絕對路徑:
this.getServletContext().getRealPath("WEB-INF/1.properties");
該方法只能用於servlet中在普通java程式碼中請用類載入器
File f=new File(類名.class.getClassLoader().getResource("/user.txt").getPath());
二.session(HttpSession類)
session為瀏覽器建立一個獨有的記憶體空間,儲存回話資料
①在jsp中為 session
②生命週期:
1.開始:第一次呼叫request.getSession()時,伺服器先檢查是否有可用的session.有的話直接用,如果沒有則建立一個新的.
2.死亡:
過期死亡:預設在30分鐘中session沒有被使用,伺服器會銷燬這個session,
意外身亡:伺服器意外關閉(非正常關閉,強行關閉),正常關閉會儲存在記憶體中.鈍化,再次啟動活化.
自殺:呼叫session的invalidate()方法時會立即銷燬該session
③作用範圍:
一次回話中,可以有多次請求響應.
④作用(用途):
儲存使用者的登入資訊(符合session特性30分鐘不使用銷燬)和購物車介面(30分鐘不支付銷燬).
三.request(HttpServletRequest)
①在jsp中為 request
②生命週期:
1.開始:在service方法呼叫之前由伺服器建立傳入service方法,
2.死亡:整個請求結束request死亡
③作用範圍:整個請求鏈(請求轉發forward()也算)
④作用(用途):
在請求鏈中共享資料,最常用於:從servlet中處理好的資料通過存入request交給jsp顯示,request.setAttribute("x",x);request.getAttribute("x");
四.pageContext(PageContext)
①在jsp中為PageContext
②生命週期:當對一個jsp請求開始,當相應結束時銷燬
③作用範圍:整個JSP頁面,是四大作用域中最小的一個。
④作用(用途):
1.獲取其它八大隱式物件,可以認為是一個入口物件.
pageContext.findAttribute("x");
會在四大作用域中自動搜尋屬性,順序從低到高:age域、request域、session域、application域.如果搜尋到就直接獲取該值,如果所有域中都找不到,返回一個null
2.獲取其所有域中的資料.
其身上提供了forward和include方法,簡化重定向和轉發的操作
pageContext.forward("7.jps");
pageContext.include("7.jsp");
2.jsp九大內建物件:
request
response
pageContext
session
application
out
config
page
exception