Servlet筆記整理

一.get和post請(qǐng)求:

1.get請(qǐng)求:

a.哪一些情況下鸽凶,瀏覽器會(huì)發(fā)送get請(qǐng)求?
a1.在瀏覽器地址欄,直接輸入某個(gè)地址建峭。
a2.點(diǎn)擊鏈接玻侥。
a3.表單默認(rèn)的提交方式。
b.特點(diǎn)
b1.請(qǐng)求參數(shù)添加到了請(qǐng)求資源路徑的后面迹缀,只能提交少量的數(shù)據(jù)使碾。
注:
請(qǐng)求行只能存放約2k左右的數(shù)據(jù)。
b2.請(qǐng)求參數(shù)會(huì)顯示在瀏覽器地址欄祝懂,不安全训枢。
注:
有一些網(wǎng)絡(luò)設(shè)備瑟蜈,比如路由器荐绝,會(huì)記錄請(qǐng)求地址故源。

2.get請(qǐng)求:

a.哪一些情況下誉结,瀏覽器會(huì)發(fā)送get請(qǐng)求?
a1.在瀏覽器地址欄查刻,直接輸入某個(gè)地址圣贸。
a2.點(diǎn)擊鏈接限次。
a3.表單默認(rèn)的提交方式隔躲。
b.特點(diǎn)
b1.請(qǐng)求參數(shù)添加到了請(qǐng)求資源路徑的后面摩梧,只能提交少量的數(shù)據(jù)。
注:
請(qǐng)求行只能存放約2k左右的數(shù)據(jù)宣旱。
b2.請(qǐng)求參數(shù)會(huì)顯示在瀏覽器地址欄仅父,不安全。
注:
有一些網(wǎng)絡(luò)設(shè)備,比如路由器笙纤,會(huì)記錄請(qǐng)求地址耗溜。

二.轉(zhuǎn)發(fā)和重定向的區(qū)別:

重定向:
response.sendRedirect(String url);
轉(zhuǎn)發(fā):
1.綁訂數(shù)據(jù)到request對(duì)象上。
request.setAttribute(String name,Object obj);
2.獲得轉(zhuǎn)發(fā)器省容。
RequestDispatcher rd = request.getRequestDispatcher(String uri);
3.轉(zhuǎn)發(fā)
rd.forward(request,response);

a. 能否共享request?

轉(zhuǎn)發(fā)可以抖拴,而重定向不行?注:
當(dāng)容器收到請(qǐng)求,會(huì)立即創(chuàng)建request和response,當(dāng)
響應(yīng)發(fā)送完畢腥椒,容器會(huì)立即銷毀這兩個(gè)對(duì)象阿宅。也就是說(shuō),
request和response的生存時(shí)間是一次請(qǐng)求與響應(yīng)期間
存在笼蛛。

b.瀏覽器地址欄的地址有無(wú)變化?

轉(zhuǎn)發(fā)之后家夺,瀏覽器地址欄的地址不變。重定向有變化伐弹。

c.地址有無(wú)限制?

轉(zhuǎn)發(fā)地址有限制拉馋,重定向沒(méi)有限制。

三.servlet生命周期:

1.實(shí)例化
2.初始化
3.就緒
4.銷毀

四.request和reaponse:

通過(guò)Request對(duì)象可以在服務(wù)器端獲取客戶端發(fā)送的請(qǐng)求數(shù)據(jù)內(nèi)容惨好。
通過(guò)Response對(duì)象可以生成服務(wù)器端向客戶端響應(yīng)的數(shù)據(jù)內(nèi)容煌茴。

五.Servlet中文處理:

request.setCharacterEncoding("utf-8");//瀏覽器請(qǐng)求
response.setContentType("text/html;charset=utf-8");//服務(wù)器響應(yīng)

六.路徑問(wèn)題:

相對(duì)路徑:不以"/"開頭的路徑。
絕對(duì)路徑:鏈接日川、表單提交蔓腐、重定向從應(yīng)用名開始寫;轉(zhuǎn)發(fā)從應(yīng)用名之后開始寫龄句。String request.getContextPath()來(lái)獲得實(shí)際部署時(shí)的應(yīng)用名回论。

七.綁定數(shù)據(jù):

request、session分歇、Servlet上下文都提供了綁訂數(shù)據(jù)
相關(guān)的方法傀蓉,區(qū)別如下:
a.綁訂到這三個(gè)對(duì)象上的數(shù)據(jù)的生存時(shí)間是不一樣的。
request < session < Servlet上下文职抡。
注:
在滿足使用條件的情況下葬燎,優(yōu)先使用生命周期短的。

八.cookie:

1.在添加cookie時(shí)缚甩,使用encode方法來(lái)編碼

String URLEncoder.encode(String str,String charset);
在讀取cookie時(shí)谱净,使用decode方法來(lái)解碼
String URLDecoder.decode(String str,String charset);

2.a.cookie可以被用戶禁止。

b.cookie不安全擅威。
對(duì)于敏感數(shù)據(jù)壕探,一定要加密處理。
c.cookie只能存放少量數(shù)據(jù)郊丛。
大約4k左右李请。
d.cookie的數(shù)量也有限制瞧筛。
大約幾百個(gè)。
e.cookie只能存放字符串捻艳。

3.

session的工作原理就是依靠cookie來(lái)做支撐驾窟,第一次使用request.getSession()時(shí)session被創(chuàng)建,并且會(huì)為該session創(chuàng)建一個(gè)獨(dú)一無(wú)二的sessionid存放到cookie中认轨,然后發(fā)送會(huì)瀏覽器端绅络,瀏覽器端每次請(qǐng)求時(shí),都會(huì)帶著這個(gè)sessionid嘁字,服務(wù)器就會(huì)認(rèn)識(shí)該sessionid恩急,知道了sessionid就找得到哪個(gè)session。以此來(lái)達(dá)到共享數(shù)據(jù)的目的纪蜒。 這里需要注意的是衷恭,session不會(huì)隨著瀏覽器的關(guān)閉而死亡,而是等待超時(shí)時(shí)間纯续。

九.九大內(nèi)置對(duì)象:

  1. request

該對(duì)象代表了客戶端的請(qǐng)求信息随珠,主要用于接受通過(guò)HTTP協(xié)議傳送到服務(wù)器的數(shù)(包括頭信息、系統(tǒng)信息猬错、請(qǐng)求方式以及請(qǐng)求參數(shù)等)窗看。
request對(duì)象的作用域?yàn)橐淮握?qǐng)求。

2)response

response 代表的是對(duì)客戶端的響應(yīng)倦炒,主要是將JSP容器處理過(guò)的對(duì)象傳回到客戶端显沈。
response對(duì)象也具有作用域,它只在JSP頁(yè)面內(nèi)有效逢唤。

3)session

session 對(duì)象是由服務(wù)器自動(dòng)創(chuàng)建的與用戶請(qǐng)求相關(guān)的對(duì)象拉讯。服務(wù)器為每個(gè)用戶都生成一個(gè)session對(duì)象,用于保存該用戶的信息鳖藕,跟蹤用戶的操作狀態(tài)魔慷。session對(duì)象內(nèi)部使用Map類來(lái)保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為 “Key/value”吊奢。 session對(duì)象的value可以使復(fù)雜的對(duì)象類型盖彭,而不僅僅局限于字符串類型。

4)application

application 對(duì)象可將信息保存在服務(wù)器中页滚,直到服務(wù)器關(guān)閉,否則application對(duì)象中保存的信息會(huì)在整個(gè)應(yīng)用中都有效铺呵。與session對(duì)象相比裹驰,application對(duì)象生命周期更長(zhǎng),類似于系統(tǒng)的“全局變量”片挂。

5)out

out 對(duì)象用于在Web瀏覽器內(nèi)輸出信息幻林,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)贞盯。在使用 out 對(duì)象輸出數(shù)據(jù)時(shí),可以對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行操作沪饺,及時(shí)清除緩沖區(qū)中的殘余數(shù)據(jù)躏敢,為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后整葡,要及時(shí)關(guān)閉輸出流件余。

6)pageContext

pageContext 對(duì)象的作用是取得任何范圍的參數(shù),通過(guò)它可以獲取 JSP頁(yè)面的out遭居、request啼器、reponse、session俱萍、application 等對(duì)象端壳。pageContext對(duì)象的創(chuàng)建和初始化都是由容器來(lái)完成的,在JSP頁(yè)面中可以直接使用 pageContext對(duì)象枪蘑。

7)config

config 對(duì)象的主要作用是取得服務(wù)器的配置信息损谦。通過(guò) pageConext對(duì)象的 getServletConfig() 方法可以獲取一個(gè)config對(duì)象。當(dāng)一個(gè)Servlet 初始化時(shí)岳颇,容器把某些信息通過(guò) config對(duì)象傳遞給這個(gè) Servlet照捡。 開發(fā)者可以在web.xml 文件中為應(yīng)用程序環(huán)境中的Servlet程序和JSP頁(yè)面提供初始化參數(shù)。

8)page

page 對(duì)象代表JSP本身赦役,只有在JSP頁(yè)面內(nèi)才是合法的麻敌。 page隱含對(duì)象本質(zhì)上包含當(dāng)前 Servlet接口引用的變量,類似于Java編程中的 this 指針掂摔。

9)exception

exception 對(duì)象的作用是顯示異常信息术羔,只有在包含 isErrorPage="true" 的頁(yè)面中才可以被使用,在一般的JSP頁(yè)面中使用該對(duì)象將無(wú)法編譯JSP文件乙漓。excepation對(duì)象和Java的所有對(duì)象一樣级历,都具有系統(tǒng)提供的繼承結(jié)構(gòu)。exception 對(duì)象幾乎定義了所有異常情況叭披。在Java程序中寥殖,可以使用try/catch關(guān)鍵字來(lái)處理異常情況; 如果在JSP頁(yè)面中出現(xiàn)沒(méi)有捕獲到的異常涩蜘,就會(huì)生成 exception 對(duì)象嚼贡,并把 exception 對(duì)象傳送到在page指令中設(shè)定的錯(cuò)誤頁(yè)面中,然后在錯(cuò)誤頁(yè)面中處理相應(yīng)的 exception 對(duì)象同诫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粤策,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子误窖,更是在濱河造成了極大的恐慌叮盘,老刑警劉巖秩贰,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異柔吼,居然都是意外死亡毒费,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門愈魏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)觅玻,“玉大人,你說(shuō)我怎么就攤上這事蝌戒〈埽” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵北苟,是天一觀的道長(zhǎng)桩匪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)友鼻,這世上最難降的妖魔是什么傻昙? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮彩扔,結(jié)果婚禮上妆档,老公的妹妹穿的比我還像新娘。我一直安慰自己虫碉,他們只是感情好贾惦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敦捧,像睡著了一般须板。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兢卵,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天习瑰,我揣著相機(jī)與錄音,去河邊找鬼秽荤。 笑死甜奄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窃款。 我是一名探鬼主播课兄,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晨继!你這毒婦竟也來(lái)了第喳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤踱稍,失蹤者是張志新(化名)和其女友劉穎曲饱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珠月,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扩淀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了啤挎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驻谆。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖庆聘,靈堂內(nèi)的尸體忽然破棺而出胜臊,到底是詐尸還是另有隱情,我是刑警寧澤伙判,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布象对,位于F島的核電站,受9級(jí)特大地震影響宴抚,放射性物質(zhì)發(fā)生泄漏勒魔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一菇曲、第九天 我趴在偏房一處隱蔽的房頂上張望冠绢。 院中可真熱鬧,春花似錦常潮、人聲如沸弟胀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)孵户。三九已至,卻和暖如春垃帅,著一層夾襖步出監(jiān)牢的瞬間延届,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工贸诚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留方庭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓酱固,卻偏偏與公主長(zhǎng)得像械念,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子运悲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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

  • IOC 控制反轉(zhuǎn)容器控制程序?qū)ο笾g的關(guān)系龄减,而不是傳統(tǒng)實(shí)現(xiàn)中,有程序代碼之間控制班眯,又名依賴注入希停。All 類的創(chuàng)建烁巫,...
    irckwk1閱讀 948評(píng)論 0 0
  • 會(huì)話(Session)跟蹤是Web程序中常用的技術(shù),用來(lái)跟蹤用戶的整個(gè)會(huì)話宠能。常用的會(huì)話跟蹤技術(shù)是Cookie與Se...
    chinariver閱讀 5,627評(píng)論 1 49
  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件亚隙,本...
    java日記閱讀 3,461評(píng)論 0 13
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96违崇、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,411評(píng)論 0 10
  • OC是運(yùn)行時(shí)語(yǔ)言阿弃,只有在程序運(yùn)行時(shí),才會(huì)去確定對(duì)象的類型羞延,并調(diào)用類與對(duì)象相應(yīng)的方法渣淳。平時(shí)編寫的OC代碼, 在程序運(yùn)...
    一個(gè)人在路上走下去閱讀 2,345評(píng)論 1 37