Servlet與Jsp(1)

  • Servlet 實(shí)現(xiàn)原理
    Servlet接口使Servlet容器能將Servlet類(lèi)載入內(nèi)存,并在Servlet實(shí)例上調(diào)用具體的方法.
  • Servlet的生命周期
    Servlet進(jìn)入Servlet容器后調(diào)用其生命周期方法,分別是:
    • init:當(dāng)Servlet第一次被請(qǐng)求時(shí),Servlet會(huì)調(diào)用此方法,此方法只會(huì)被調(diào)用一次,后續(xù)請(qǐng)求中不會(huì)再次調(diào)用.調(diào)用此方法會(huì)將ServletConfig賦予類(lèi)級(jí)變量.
    • Service:每次請(qǐng)求Servlet時(shí),都會(huì)調(diào)用次方法
    • destroy:銷(xiāo)毀Servlet時(shí)調(diào)用
  • Servlet的會(huì)話管理
    包含URL重寫(xiě),隱藏域,Cookies,HttpSession四種
  • URL重寫(xiě)
    使用html 的a標(biāo)簽,將信息添加至URL上
    <a href='?city=london'>London</a>
  • 隱藏域
    隱藏域的保持狀態(tài)與URL重寫(xiě)類(lèi)似,但它不是將值附加到URL上,而是將值放入HTML的隱藏域中,跟隨其他顯示表示的信息一起通過(guò)表單方式提交
<form method='post' action='update'>
<input type='hidden' name='id' value='1'>
<!--顯示信息省略-->
<input type="submit"  value="提交">

URL重寫(xiě)與隱藏域只適用于無(wú)須跨越太多頁(yè)面的信息.

  • Cookies
    Cookies可以幫助我們?cè)诙囗?yè)面之間很好的會(huì)話,瀏覽器通常支持每個(gè)網(wǎng)站高達(dá)20個(gè)Cookies
    Cookies的創(chuàng)建:
    Cookie cookie=new Cookie(name,value);
    Cookie cookie=new Cookie("user","admin");
    將cookie發(fā)送至瀏覽器,使用HttpServletResponse的add方法:
    httpServletResponse.addCookie(cookie);
    • Cookies的信息獲取與刪除
      Cookies信息獲取
      在Servlet中并沒(méi)有g(shù)etCookieByName來(lái)簡(jiǎn)化獲取信息的工作,只能遍歷Cookie
Cookie cookies=request.getCookies();
Cookie cookie=null;
if(cookies!=null){
  for(Cookie cookieCopy:cookies){
    if(cookie.getName().equals("user")){
    cookie=cookieCopy;
break;
}  
}
}

Cookie刪除
使用JavaScript也可以創(chuàng)建和刪除cookie,詳情Google
cookie無(wú)法直接刪除,只能重新命名一個(gè)相同名字的cookie然后將其MaxAge設(shè)置為0

Cookie cookie=new Cookie("userName","");
cookie.setMaxAge(0);
response.addCookie(cookie);
  • HttpSession
    • 在所用會(huì)話追蹤技術(shù)中HttpSession是最強(qiáng)大也是最通用的.HttpSession在對(duì)象第一次訪問(wèn)網(wǎng)站時(shí)創(chuàng)建,用戶可以根據(jù)HttpServletRequest的getSession()方法獲取
      HttpSession session=httpServletRequest.getSession();
    • HttpSession存儲(chǔ)于內(nèi)存之中,因此盡量不要在其存儲(chǔ)大量數(shù)據(jù),要將數(shù)據(jù)存儲(chǔ)于HttpSession之中,使用其setAttribute()方法,獲取數(shù)據(jù)較Cookies簡(jiǎn)單,直接使用getAttribute(name)
session.setAttribute(name,value);//存儲(chǔ)數(shù)據(jù)
session.getAttribute(name);//獲取數(shù)據(jù)
  • 當(dāng)忘記存儲(chǔ)于session中的數(shù)據(jù)名字,可以使用getAttributeNames獲取,其返回一個(gè)Enumeration<String>對(duì)象可供迭代訪問(wèn)保存在session中的值
  • 對(duì)于HttpSession由于是存儲(chǔ)于內(nèi)存中,過(guò)多會(huì)導(dǎo)致系統(tǒng)運(yùn)行不流暢,所以Java提供了HttpSession的過(guò)期屬性.
    1.當(dāng)?shù)竭_(dá)一定時(shí)間未訪問(wèn)此session屬性后,系統(tǒng)將使會(huì)話過(guò)期,并清空其保存的對(duì)象,設(shè)置時(shí)長(zhǎng)使用getMaxInactiveInterval(int second).如果將second設(shè)置為0,session將永不過(guò)期,直到servlet容器關(guān)閉.
  1. 強(qiáng)制關(guān)閉session,清空所有數(shù)據(jù),使用invalidate方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末轿腺,一起剝皮案震驚了整個(gè)濱河市病蛉,隨后出現(xiàn)的幾起案子剃幌,更是在濱河造成了極大的恐慌,老刑警劉巖长搀,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異年枕,居然都是意外死亡播歼,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)蚓炬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)松逊,“玉大人,你說(shuō)我怎么就攤上這事肯夏」卓茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵熄捍,是天一觀的道長(zhǎng)烛恤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)余耽,這世上最難降的妖魔是什么缚柏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮碟贾,結(jié)果婚禮上币喧,老公的妹妹穿的比我還像新娘轨域。我一直安慰自己,他們只是感情好杀餐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布干发。 她就那樣靜靜地躺著,像睡著了一般史翘。 火紅的嫁衣襯著肌膚如雪枉长。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天琼讽,我揣著相機(jī)與錄音必峰,去河邊找鬼。 笑死钻蹬,一個(gè)胖子當(dāng)著我的面吹牛吼蚁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播问欠,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肝匆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了顺献?” 一聲冷哼從身側(cè)響起术唬,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滚澜,沒(méi)想到半個(gè)月后粗仓,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡设捐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年借浊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萝招。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚂斤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出槐沼,到底是詐尸還是另有隱情曙蒸,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布岗钩,位于F島的核電站纽窟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兼吓。R本人自食惡果不足惜臂港,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧审孽,春花似錦县袱、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至打颤,卻和暖如春暴拄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瘸洛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工揍移, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留次和,地道東北人反肋。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像踏施,于是被迫代替她去往敵國(guó)和親石蔗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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