JSP的內置對象

什么是內置對象务冕?

?????????在jsp開發(fā)中书释,會頻繁使用到一些對象翘贮。例如:HttpSession、ServletContext征冷、HttpServletRequest择膝。如果每次使用這些對象都要創(chuàng)建,就顯得非常麻煩检激。所以Sun公司設計jsp時肴捉,在jsp頁面加載完畢后就會幫開發(fā)者創(chuàng)建這些對象,而開發(fā)者只需要直接使用這些對象調用方法即可叔收。這些創(chuàng)建好的對象就叫內置對象齿穗。

9大內置對象

?????????jsp中的9個內置對象將由容器為用戶進行實例化,用戶直接使用即可饺律。

內置對象.png

?????????以上內置對象中常用的是pageContext窃页、request、response复濒、session脖卖、application,掌握了這5個巧颈,即可進行程序開發(fā)畦木。

request內置對象

?????????客戶端的請求被封裝在request對象中,通過它可以了解客戶端的請求砸泛,然后作出響應十籍,request請求具有request請求域。
常用方法:

getParameter(String name)
getParamterValues(String name)
setAttribute(String name,Onject o)
getAttribute(string name)
getContetType();
getProtocol()
getServerName();```
###response對象
         response對象包含了響應客戶端請求的有關信息唇礁,它具有頁面作用域勾栗,該頁面的作用域只對該頁面有效。
**常用方法:**

getCharacterEncoding()
setContentType();
getWriter();該方法打應輸出流總是前于 out.println();
sendRedirect(String location)```

請求重定向和請求轉發(fā):
請求重定向:客戶端行為:response.sendDirect();兩次請求盏筐,前一次請求的請求對象不會保存围俘,地址欄的url地址會發(fā)生改變
請求轉發(fā):服務器行為,request.getResuestDispatcher().forward();一次請求琢融,轉發(fā)后請求對象會保存楷拳,地址欄url地址不會變。

session對象

?????????session表示客戶端與服務器的一次會話
?????????web中session指的是用戶在瀏覽某個網站吏奸,是進入網站到關閉瀏覽器這段時間
?????????它是保存在服務器的內存中,不同用戶有不同的session
?????????它在第一個jsp頁面被裝載時自動創(chuàng)建陶耍,完成會話期管理奋蔚。
常用方法:

getCreationTime();
String getId();
setAttribute(String name,Object o);
getAttribute(String name);
String[] getValueNames();
int getMaxInactivieInterval();單位 秒
setMaxInactiveInterval();```
**session的生命周期:**
         創(chuàng)建: 當客戶端第一次訪問某個頁面jsp或者servlet,服務器會創(chuàng)建一個 sessionId,每次客戶端向服務器發(fā)送請求時,都會將sessionId攜帶過去泊碑,服務器會對sessionId進行校驗坤按。
         活動: 當客戶端通過超鏈接打開新頁面屬于同一次會話;當瀏覽頁面全部關閉馒过,重新打開屬于一次新的會話臭脓。
         銷毀:調用sesson.invalidate();session過期,默認是30分鐘腹忽;服務器重啟来累;

###application對象

         application實現(xiàn)了用戶數(shù)據(jù)共享,可存放全局變量窘奏。
         application 開始于服務器的重啟嘹锁,終止于服務器的關閉
         application 是ServletContext實例。
**常用方法:**

setAttribute(String ,Object);
getAttribute(String);
Enumeration getAttributeNames();
getServerInfo();返回Jsp 引擎名和版本號

###page對象
         page對象就是指當前jsp頁面本身着裹,有點像this指針领猾,它是java.lang.Object類的實例。常用的方法就是Object 類的方法骇扇。

getClass()
hashCode();
equals();
copy();
clone()
toString();
notify();
notifyAll();
wait();```

Out內置對象

?????????out對象類型摔竿,JspWriter類,相當于帶緩沖的PrintWriter
??????????????????PrintWriter:writer(內容)直接向瀏覽器寫出內容少孝。
??????????????????JspWriter:writer(內容)向jsp緩沖區(qū)寫出內容


jsp頁面的緩存機制.png

pageContext內置對象

?????????jsp的上下文對象可以獲取其他八個內置對象
作用:保存數(shù)據(jù)和獲取數(shù)據(jù)继低,用于數(shù)據(jù)之間的共享

獲取數(shù)據(jù)

  1. 默認情況下,從page獲取
pageContext.getAttribute("name")```
2. 可以從四個域中獲取數(shù)據(jù)
         pageContext.getAttribute("name",域范圍常量)
域范圍常量:

PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.PAGE_APPLICATION_SCOPE

3. 在四個域中搜索數(shù)據(jù)

         ```
PageContext.findAttribute("name");
順序:page域 ->request域 ->session域 ->context(application域)```

**常用方法**

getOut()
geSession();
getPage();
getReuest();
getResponse();
setAttribute();
getAttibute();
getAttributeScope();
forward();
include();```

config對象

?????????它是在一個servlet初始化時韭山,jsp頁面用它傳遞信息郁季,比如servlet初始化參數(shù);以及服務器的有關信息钱磅。

ServletContext getServletContext();
getInitParameter(String);
Enumeration getInitParameterNames();```
####Jsp中的四個域對象
#####域對象作用
1. 保存數(shù)據(jù)和獲取數(shù)據(jù)梦裂,用于數(shù)據(jù)共享
2. 域對象方法
         ```
setAttribute("name",Object);保存數(shù)據(jù)```
         ```
getAttribute("name")獲取數(shù)據(jù)```
         ```
removeAttribute("name")清除數(shù)據(jù)```
3. 域對象范圍
         page域:只能在當前jsp頁面中使用
         request域:只能在同一個請求中使用
         session:只能在同一個會話(session對象)中使用
         context域:只能在同一個web應用中使用
###exception對象
         即異常對象。如果一個jsp想要用此對象盖淡,就必須把isErrorPage 設為true.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末年柠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子褪迟,更是在濱河造成了極大的恐慌冗恨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件味赃,死亡現(xiàn)場離奇詭異掀抹,居然都是意外死亡,警方通過查閱死者的電腦和手機心俗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門傲武,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蓉驹,“玉大人,你說我怎么就攤上這事揪利√耍” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵疟位,是天一觀的道長瞻润。 經常有香客問我,道長甜刻,這世上最難降的妖魔是什么绍撞? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮罢吃,結果婚禮上楚午,老公的妹妹穿的比我還像新娘。我一直安慰自己尿招,他們只是感情好矾柜,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著就谜,像睡著了一般怪蔑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丧荐,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天缆瓣,我揣著相機與錄音,去河邊找鬼虹统。 笑死弓坞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的车荔。 我是一名探鬼主播渡冻,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忧便!你這毒婦竟也來了族吻?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤珠增,失蹤者是張志新(化名)和其女友劉穎超歌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒂教,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡巍举,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凝垛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懊悯。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡简烘,死狀恐怖,靈堂內的尸體忽然破棺而出定枷,到底是詐尸還是另有隱情,我是刑警寧澤届氢,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布欠窒,位于F島的核電站,受9級特大地震影響退子,放射性物質發(fā)生泄漏岖妄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一寂祥、第九天 我趴在偏房一處隱蔽的房頂上張望荐虐。 院中可真熱鬧,春花似錦丸凭、人聲如沸福扬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铛碑。三九已至,卻和暖如春虽界,著一層夾襖步出監(jiān)牢的瞬間汽烦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工莉御, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撇吞,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓礁叔,卻偏偏與公主長得像牍颈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晴圾,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容

  • JSP的內置對象 大家好颂砸,我是IT修真院深圳分院第4期的學員,一枚正直純潔善良的JAVA程序員 今天給大家分享一下...
    啊咯嘻嘻閱讀 368評論 0 0
  • Jsp的內置對象 什么是內置對象: 在jsp開發(fā)中死姚,會頻繁使用到一些對象, 例如HttpSession, Serv...
    奮斗的老王閱讀 807評論 1 51
  • 1.學習內容 JSP技術入門和常用指令 JSP的內置對象&標簽介紹 EL表達式&EL的內置對象 2.JSP技術入門...
    WendyVIV閱讀 2,125評論 1 18
  • 一人乓、JSP內置對象簡介 JSP內置對象是Web容器創(chuàng)建的一組對象,不使用new關鍵字就可以使用的內置對象都毒。開發(fā)者可...
    年少懵懂丶流年夢閱讀 3,712評論 0 8
  • 年關將近账劲,相信很多人都在盤點自己上一年的工作戳护,這其中不乏會遇到很多困惑金抡,今天來分享6點經驗建議,相信可以幫你解決許...
    傾心藍田閱讀 805評論 0 2