概念
所謂“屬性”是指保存在容器內(nèi)存中的一段信息,利用屬性可以實(shí)現(xiàn)servlet與servlet、servlet與JSP、JSP與JSP之間的數(shù)據(jù)傳遞箱吕。屬性在Web開發(fā)中應(yīng)用頻率非常高,作為一個(gè)Web開發(fā)者對(duì)屬性一定要熟練使用柿冲。
屬性作用域
Servlet中的屬性根據(jù)作用域分成三類殖氏。
1)Reqeust級(jí)
綁定到請(qǐng)求級(jí)的屬性僅能在同一個(gè)請(qǐng)求中使用,一旦應(yīng)答完成容器自動(dòng)銷毀此屬性占用的內(nèi)存空間姻采。
2)Session級(jí)
每個(gè)會(huì)話都會(huì)在容器中占用獨(dú)立的內(nèi)存空間雅采,不同會(huì)話不能互相訪問爵憎。當(dāng)會(huì)話超時(shí)后,容器自動(dòng)刪除屬性婚瓜,同時(shí)將會(huì)話對(duì)應(yīng)內(nèi)存空間釋放宝鼓。
3)Context級(jí)
上下文級(jí)屬性作用域范圍最大,每個(gè)會(huì)話都可以操作此級(jí)屬性巴刻。上下級(jí)屬性只有當(dāng)容器關(guān)閉或手工刪除愚铡。
保存方式
屬性采用Map的數(shù)據(jù)結(jié)構(gòu)保存數(shù)據(jù),Key為字符串類型Value是Object類型胡陪,同一作用域?qū)傩缘膋ey不能重復(fù)沥寥。
操作屬性
無論何種作用域的屬性都采用setAttribute()方法設(shè)定屬性,getAttribute()取得屬性柠座,removeAttribute()刪除屬性邑雅。
我們可以從HttpservletRequest、HttpSession妈经、ServlerContext三個(gè)接口實(shí)例中調(diào)用淮野,這些方法的參數(shù)列表也完全相同。
Servlet的”屬性”理論知識(shí)小傅老師今天先聊到這邊吹泡,明天我們繼續(xù)講屬性操作的具體實(shí)現(xiàn)代碼骤星。