更新時間:2020-07-09 13:50:35 來源:動力節(jié)點 瀏覽2634次
四大作用域從小到大為:PageContext(jsp頁面),ServletRequest(一次請求),HttpSession(一次會話),ServletContext(整個web應(yīng)用)。相信大家對四大作用域并不陌生,不過大家真的都了解嗎?
一、PageContext域:
作用范圍是整個JSP頁面,是四大作用域中最小的一個;生命周期是當(dāng)對JSP的請求時開始,當(dāng)響應(yīng)結(jié)束時銷毀。
二、ServletRequest域:
作用范圍是整個請求鏈(請求轉(zhuǎn)發(fā)也存在);生命周期是在service方法調(diào)用前由服務(wù)器創(chuàng)建,傳入service方法。整個請求結(jié)束,request生命結(jié)束。
三、HttpSession域:
作用范圍是一次會話。生命周期是在第一次調(diào)用request.getSession()方法時,服務(wù)器會檢查是否已經(jīng)有對應(yīng)的session,如果沒有就在內(nèi)存中創(chuàng)建一個session并返回。當(dāng)一段時間內(nèi)session沒有被使用(默認(rèn)為30分鐘),則服務(wù)器會銷毀該session。如果服務(wù)器非正常關(guān)閉(強(qiáng)行關(guān)閉),沒有到期的session也會跟著銷毀。如果調(diào)用session提供的invalidate(),可以立即銷毀session。
注意:服務(wù)器正常關(guān)閉,再啟動,Session對象會進(jìn)行鈍化和活化操作。同時如果服務(wù)器鈍化的時間在session默認(rèn)銷毀時間之內(nèi),則活化后session還是存在的。否則Session不存在。如果JavaBean數(shù)據(jù)在session鈍化時,沒有實現(xiàn)Serializable則當(dāng)Session活化時,會消失。
四、ServletContext域:
作用范圍是整個Web應(yīng)用。當(dāng)Web應(yīng)用被加載進(jìn)容器時創(chuàng)建代表整個web應(yīng)用的ServletContext對象,當(dāng)服務(wù)器關(guān)閉或Web應(yīng)用被移除時,ServletContext對象跟著銷毀。
簡而言之,JavaWeb四大作用域可以歸納為:
PageContext:在本頁中有效,跳出頁面則失效;
ServletRequest:跨頁面作用,一般都是用于表單提交等;
HttpSession:在一定會話期間使用;
ServletContext:總是有效,關(guān)閉服務(wù)器后失效。
Java視頻教程下載
2020最新JavaWeb教程:http://m.ilovecolors.com.cn/javavideo/147.html
Filter&Listener:http://m.ilovecolors.com.cn/javavideo/121.html
EL&JSTL:http://m.ilovecolors.com.cn/javavideo/122.html
Servle:http://m.ilovecolors.com.cn/javavideo/119.html
JSP:http://m.ilovecolors.com.cn/javavideo/120.html
以上就是動力節(jié)點java培訓(xùn)機(jī)構(gòu)的小編針對“Javaweb培訓(xùn)教程之四大作用域”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀