Java高級_servlet生命周期和jsp的九大內(nèi)置對象

Servlet被服務(wù)器實例化后,容器運行其init(初始化)方法柠傍,請求到達時運行其service方法掌腰,service方法自動派遣運行與請求對應(yīng)的doXXX方法(doGet楷掉,doPost都是我們要進行的工作)等作喘,當服務(wù)器決定將實例銷毀的時候調(diào)用其destroy(銷毀)方法理疙。

注:sevlet的生命周期中,servlet的初始化和銷毀只會發(fā)生一次泞坦,因此init()和destroy()方法只能被servlet容器調(diào)用一次窖贤,而service()方法取決與servlet被客戶端訪問的次數(shù)

與CGI的區(qū)別在于servlet處于服務(wù)器進程中,它通過多線程方式運行其service方法贰锁,

一個實例可以服務(wù)于多個請求赃梧,并且其實例一般不會銷毀,而CGI對每個請求都產(chǎn)生新的進程豌熄,

服務(wù)完成后就銷毀授嘀,所以效率上低于servlet。

jsp的九大內(nèi)置對象:

一.request對象(一次請求范圍)

該對象封裝了用戶提交的信息锣险,通過調(diào)用該對象相應(yīng)的方法可以獲取封裝的信息蹄皱,

即使用該對象可以獲取用戶提交信息。它是HttpServletRequest的實例囱持。

下面介紹request的常用方法:

1夯接,getParameter();使用如下 String str=request.getParameter();2,setAttribute();和getAttribute();removeAttribute();getMethod();getProtocol();getReqeustURI();getRemoteAddr();

getServerPort();和 getServerName();

二.response對象(一次請求范圍)

對客戶的請求做出動態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)纷妆。

三.session對象(打開一個瀏覽器范圍)

1.什么是session:session對象是一個JSP內(nèi)置對象盔几,它在第一個JSP頁面被裝載時自動創(chuàng)建,完成會話期管理掩幢。

從一個客戶打開瀏覽器并連接到服務(wù)器開始逊拍,到客戶關(guān)閉瀏覽器離開這個服務(wù)器結(jié)束,被稱為一個會話际邻。當一個客戶訪問一個服務(wù)器時芯丧,可能會在這個服務(wù)器的幾個頁面之間反復(fù)連接,反復(fù)刷新一個頁面世曾,服務(wù)器應(yīng)當通過某種辦法知道這是同一個客戶缨恒,這就需要session對象。

2.session對象的ID:當一個客戶首次訪問服務(wù)器上的一個JSP頁面時轮听,JSP引擎產(chǎn)生一個session對象骗露,同時分配一個String類型的ID號,JSP引擎同時將這個ID號發(fā)送到客戶端血巍,存放在Cookie中萧锉,這樣session對象和客戶之間就建立了一一對應(yīng)的關(guān)系。當客戶再訪問連接該服務(wù)器的其他頁面時述寡,不再分配給客戶新的session對象柿隙,直到客戶關(guān)閉瀏覽器后叶洞,服務(wù)器端該客戶的session對象才取消,并且和客戶的會話對應(yīng)關(guān)系消失禀崖。當客戶重新打開瀏覽器再連接到該服務(wù)器時衩辟,服務(wù)器為該客戶再創(chuàng)建一個新的session對象。

3.session對象存在一定時間過期問題帆焕,所以存在session中的名值對會在一定時間后失去惭婿,可以通過更改session有效時間來避免這種情況。同時編程時盡量避免將大量有效信息存儲在session中叶雹,request是一個不錯的替代對象财饥。

四.a(chǎn)pplication對象(服務(wù)器啟動范圍內(nèi))

1.什么是application:

服務(wù)器啟動后就產(chǎn)生了這個application對象,當客戶在所訪問的網(wǎng)站的各個頁面之間瀏覽時折晦,這個application對象都是同一個钥星,直到服務(wù)器關(guān)閉。但是與session不同的是满着,所有客戶的application對象都是同一個谦炒,即所有客戶共享這個內(nèi)置的application對象。

2.a(chǎn)pplication對象常用方法:

(1)public void setAttribute(String key,Object obj): 將參數(shù)Object指定的對象obj添加到application對象中风喇,并為添加的對象指定一個索引關(guān)鍵字宁改。

(2)public Object getAttribute(String key): 獲取application對象中含有關(guān)鍵字的對象。

五.out對象

out對象是一個輸出流魂莫,用來向客戶端輸出數(shù)據(jù)还蹲。out對象用于各種數(shù)據(jù)的輸出。

六.Page

page對象就是指向當前JSP頁面本身耙考,有點象類中的this指針谜喊,它是java.lang.Object類的實例

JSP網(wǎng)頁本身,page對象是當前頁面轉(zhuǎn)換后的Servlet類的實例倦始。從轉(zhuǎn)換后的Servlet類的代碼中斗遏,可以看到這種關(guān)系:Object page = this;在JSP頁面中,很少使用page對象鞋邑。

七.config對象

javax.servlet. ServletConfig 的實例诵次,該實例代表該JSP 的配置信息。常用的方法有g(shù)etInitParameter(String paramNarne) 及getInitParameternarnes() 等方法枚碗。事實上藻懒, JSP 頁面通常無須配置,也就不存在配置信息视译。因此,該對象更多地在Servlet 中有效归敬。

八.exception對象

java.lang.Throwable 的實例酷含,該實例代表其他頁面中的異常和錯誤鄙早。只有當頁面是錯誤處理頁面,即編譯指令page 的isErrorPage 屬性為true 時椅亚,該對象才可以使用限番。常用的方法有g(shù)etMessage()和printStackTrace()等。

九. pageContext對象

javax.servlet.jsp.PageContext 的實例呀舔,該對象代表該JSP 頁面上下文弥虐,使用該對象可以訪問頁面中的共享數(shù)據(jù)。常用的方法有g(shù)etServletContext()和getServletConfig()等媚赖。

//使用pageContext 設(shè)置屬性霜瘪,該屬性默認在page 范圍內(nèi)

pageContext. setAttribute("page" , "hello") ;

//使用request 設(shè)置屬性,該屬性默認在request 范圍內(nèi)

request. setAttribute ("request" , "hello");

//使用pageContext將屬性設(shè)置在request 范圍中

pageContext.setAttribute("request2" , "hello" , pageContext.REQUEST_SCOPE);

// 使用session將屬性設(shè)置在session 范圍中

session.setAttribute("session" , "hello");

//使用pageContext將屬性設(shè)置在session范圍中

pageContext.setAttribute("session2" , "hello" , pageContext.SESSION_SCOPE);

//使用application將屬性設(shè)置在application范圍中

application. setAttribute ("app" , "hello") ;

//使用pageContext 將屬性設(shè)置在application 范圍中

pageContext.setAttribute("app2" , "hello" , pageContext.APPLICATION_SCOPE) ;

以上資源來源于:http://baike.baidu.com/view/3387.htm#4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惧磺,一起剝皮案震驚了整個濱河市颖对,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌磨隘,老刑警劉巖缤底,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異番捂,居然都是意外死亡个唧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門设预,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徙歼,“玉大人,你說我怎么就攤上這事絮缅÷沉ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵耕魄,是天一觀的道長画恰。 經(jīng)常有香客問我,道長吸奴,這世上最難降的妖魔是什么允扇? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮则奥,結(jié)果婚禮上考润,老公的妹妹穿的比我還像新娘。我一直安慰自己读处,他們只是感情好糊治,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著罚舱,像睡著了一般井辜。 火紅的嫁衣襯著肌膚如雪绎谦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天粥脚,我揣著相機與錄音窃肠,去河邊找鬼。 笑死刷允,一個胖子當著我的面吹牛冤留,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播树灶,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼纤怒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了破托?” 一聲冷哼從身側(cè)響起肪跋,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎土砂,沒想到半個月后州既,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡萝映,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年吴叶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片序臂。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚌卤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出奥秆,到底是詐尸還是另有隱情逊彭,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布构订,位于F島的核電站侮叮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏悼瘾。R本人自食惡果不足惜囊榜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望亥宿。 院中可真熱鬧卸勺,春花似錦、人聲如沸烫扼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圆到,卻和暖如春怎抛,著一層夾襖步出監(jiān)牢的瞬間琢蛤,已是汗流浹背长搀。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工舶替, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挣菲。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像掷邦,于是被迫代替她去往敵國和親白胀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 一抚岗、JSP內(nèi)置對象簡介 JSP內(nèi)置對象是Web容器創(chuàng)建的一組對象或杠,不使用new關(guān)鍵字就可以使用的內(nèi)置對象。開發(fā)者可...
    年少懵懂丶流年夢閱讀 3,740評論 0 8
  • 1.學(xué)習內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對象&標簽介紹 EL表達式&EL的內(nèi)置對象 2.JSP技術(shù)入門...
    WendyVIV閱讀 2,139評論 1 18
  • 一宣蔚、JSP基礎(chǔ) 1.1什么是JSP JSP(Java ServerPage)是Java服務(wù)器端動態(tài)頁面技術(shù)向抢。是su...
    晨星資源閱讀 1,157評論 0 6
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96胚委、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,412評論 0 10
  • 所謂青春片亩冬,就是把美好的碎片重疊重疊再懷念—— 本來我是不打算去看高潮排期已過的《我的少女時代》了艘希,卻在訂單即將生...
    閆曉雨閱讀 3,872評論 48 101