selvet

一维苔、Servlet簡介

Servlet是運行在服務(wù)端的java小程序,是sun公司提供的一套規(guī)范(接口)用來處理客戶端請求懂昂、相應(yīng)給瀏覽器的動態(tài)資源介时。但servlet的實質(zhì)就是java代碼,通過java 的API動態(tài)地向客戶輸出內(nèi)容

  • Servlet規(guī)范:包含三個技術(shù)點(三大組件)
    1.servlet技術(shù)
    2.filter技術(shù)(過濾器)
    3.listener技術(shù)(監(jiān)聽器)

二、Servlet快速入門

實現(xiàn)步驟:
1)創(chuàng)建類實現(xiàn)Servlet接口
2)覆蓋尚未實現(xiàn)的方法---service方法
3)在web.xml進行servlet的配置

但在實際開發(fā)中沸柔,一般不直接實現(xiàn)servlet接口循衰,因為需要覆蓋的方法太多,我們一般創(chuàng)建類繼承HttpServlet

實現(xiàn)步驟:
1)創(chuàng)建類繼承HttpServlet類
2)覆蓋doGet和doPost
3)在web.xml中進行servlet的配置

三勉失、servlet的執(zhí)行過程

Paste_Image.png
Paste_Image.png

四、Servlet生命周期

用戶通過單擊某個鏈接或者直接在瀏覽器的地址欄中輸入URL來訪問Servlet原探,Web服務(wù)器接收到請求后乱凿,先將請求交給Servlet容器/web容器。默認第一次訪問時創(chuàng)建Servlet對象咽弦,在服務(wù)器關(guān)閉時銷毀Servlet對象徒蟆。當Servlet對象創(chuàng)建時會調(diào)用init方法,銷毀時會調(diào)用destroy方法型型,而每次訪問Servlet時都會調(diào)用service方法

(1)Servlet接口中的方法
1)init(ServletConfig config)
何時執(zhí)行:servlet對象創(chuàng)建的時候執(zhí)行
ServletConfig : 代表的是該servlet對象的配置信息

2)service(ServletRequest request,ServletResponse response)
何時執(zhí)行:每次請求都會執(zhí)行
ServletRequest :代表請求 認為ServletRequest 內(nèi)部封裝的是 http請求的信息
ServletResponse :代表響應(yīng) 認為要封裝的是響應(yīng)的信息

3)destroy()
何時執(zhí)行:servlet銷毀的時候執(zhí)行

(2)HttpServlet類的方法
1)init()
2)doGet(HttpServletRequest request,HttpServletResponse response)
3)doPost(HttpServletRequest request,HttpServletResponse response)
4)destroy()

(3)Servlet的生命周期(面試題)
1)Servlet何時創(chuàng)建
默認第一次訪問servlet時創(chuàng)建該對象

2)Servlet何時銷毀
服務(wù)器關(guān)閉servlet就銷毀了

3)每次訪問必然執(zhí)行的方法
service(ServletRequest req, ServletResponse res)方法

問題:對XXXServlet進行了10次訪問段审,init(),destory()闹蒜,service()寺枉,doGet(),doPost() 一共執(zhí)行力多少次绷落?request對象創(chuàng)建幾個姥闪?response創(chuàng)建幾個?
init():1次
destroy():0次
service():10次
request和response對象:10個

注意:關(guān)于servlet的自動創(chuàng)建service方法調(diào)用的參數(shù)對象req和res
http://blog.sina.com.cn/s/blog_823128380101bhd0.html

四砌烁、Servlet的配置

1.url-pattern的配置方法


Paste_Image.png
Paste_Image.png

五筐喳、ServletContext對象

  1. 什么是ServletContext對象
    ServletContext代表是一個web應(yīng)用的環(huán)境(上下文)對象,ServletContext對象 內(nèi)部封裝是該web應(yīng)用的信息函喉,ServletContext對象一個web應(yīng)用只有一個
  • 問題:一個web應(yīng)用有幾個servlet對象避归?----多個
  • ServletContext對象的生命周期?
    創(chuàng)建:該web應(yīng)用被加載(服務(wù)器啟動或發(fā)布web應(yīng)用(前提管呵,服務(wù)器啟動狀 態(tài)))
    銷毀:web應(yīng)用被卸載(服務(wù)器關(guān)閉梳毙,移除該web應(yīng)用)
  1. 怎樣獲得ServletContext對象
    1)ServletContext servletContext = config.getServletContext();(一般不用)
    2)ServletContext servletContext = this.getServletContext();
    (this可以不寫,因為getServletContext()在父父類中已經(jīng)定義了如方法1的config對象調(diào)用getServletContext())

  2. ServletContext的作用
    (1)獲得web應(yīng)用全局的初始化參數(shù)

  • web.xml中配置初始化參數(shù)


    Paste_Image.png
  • 通過context對象獲得參數(shù)


    Paste_Image.png

(2)獲得web應(yīng)用中任何資源的絕對路徑(重要 重要 重要)
方法:String path = context.getRealPath(相對于該web應(yīng)用的相對地址);
方法2:類加載器

Paste_Image.png

(3)ServletContext是一個域?qū)ο?/strong>(重要 重要 重要)

  • 什么是域?qū)ο缶柘拢渴裁词怯颍?br> 存儲數(shù)據(jù)的區(qū)域就是域?qū)ο?/p>

  • ServletContext域?qū)ο蟮淖饔梅秶?br> 整個web應(yīng)用(所有的web資源都可以隨意向 servletcontext域中存取數(shù)據(jù)顿天,數(shù)據(jù)可以共享)

  • 域?qū)ο蟮耐ㄓ玫姆椒ǎ?br> setAtrribute(String name,Object obj);
    getAttribute(String name);
    removeAttribute(String name);

  • 示例代碼:記錄登入人的個數(shù)
    先在繼承父父類的init()方法中輸寫Servletcontext域中存一個數(shù)據(jù)count


    Paste_Image.png

    再在登入成功后的條件語句中輸寫從servletcontext中取出count進行運算,最后再將計算好的count結(jié)果值存入servletcontext域中


    Paste_Image.png

總結(jié)

1.把編寫的web應(yīng)用工程發(fā)布到tomcat內(nèi)部
2.當服務(wù)器一啟動后就會把web工程加載到tomcat內(nèi)存中
3.在加載的同時會為web工程/項目生成唯一的一個ServletContext對象(可以當成當前的web應(yīng)用)蔑担,多個Servlet對象
4.每一個Servlet對象都有一個ServletConfig對象牌废,而且在創(chuàng)建Servlet對象時都會執(zhí)行init()方法,將ServletConfig對象傳遞給servlet啤握。
5.每一個ServletConfig對象代表每一個Servlet對象的配置信息鸟缕,ServletContext對象代表整個web應(yīng)用的配置信息
6.因為一個web應(yīng)用先有ServletContext對象,才有Servlet對象,才有ServletConfig對象懂从,所以在創(chuàng)建config對象的時候把Context對象的引用放到config對象內(nèi)部維護著授段,所以可以通過config對象獲取到context對象


Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市番甩,隨后出現(xiàn)的幾起案子侵贵,更是在濱河造成了極大的恐慌,老刑警劉巖缘薛,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窍育,死亡現(xiàn)場離奇詭異,居然都是意外死亡宴胧,警方通過查閱死者的電腦和手機漱抓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恕齐,“玉大人乞娄,你說我怎么就攤上這事∠云纾” “怎么了仪或?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長士骤。 經(jīng)常有香客問我溶其,道長,這世上最難降的妖魔是什么敦间? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任瓶逃,我火速辦了婚禮,結(jié)果婚禮上廓块,老公的妹妹穿的比我還像新娘厢绝。我一直安慰自己,他們只是感情好带猴,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布昔汉。 她就那樣靜靜地躺著,像睡著了一般拴清。 火紅的嫁衣襯著肌膚如雪靶病。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天口予,我揣著相機與錄音娄周,去河邊找鬼。 笑死沪停,一個胖子當著我的面吹牛煤辨,可吹牛的內(nèi)容都是我干的裳涛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼众辨,長吁一口氣:“原來是場噩夢啊……” “哼端三!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鹃彻,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤郊闯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛛株,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體团赁,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年泳挥,在試婚紗的時候發(fā)現(xiàn)自己被綠了然痊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片至朗。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡屉符,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锹引,到底是詐尸還是另有隱情矗钟,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布嫌变,位于F島的核電站吨艇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏腾啥。R本人自食惡果不足惜东涡,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倘待。 院中可真熱鬧疮跑,春花似錦、人聲如沸凸舵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啊奄。三九已至渐苏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菇夸,已是汗流浹背琼富。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庄新,地道東北人公黑。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凡蚜。 傳聞我的和親對象是個殘疾皇子人断,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

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

  • 從三月份找實習到現(xiàn)在,面了一些公司朝蜘,掛了不少恶迈,但最終還是拿到小米、百度谱醇、阿里暇仲、京東、新浪副渴、CVTE奈附、樂視家的研發(fā)崗...
    時芥藍閱讀 42,253評論 11 349
  • Servlet學習的大綱 servlet概念及相關(guān)接口簡介 servet 執(zhí)行過程 servlet映射路徑 缺省s...
    奮斗的老王閱讀 1,194評論 1 51
  • 本文包括: Servlet簡介關(guān)于Servlet的一些類 Servlet生命周期 ServletConfig獲得初...
    廖少少閱讀 3,866評論 1 67
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96煮剧、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,408評論 0 10
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法斥滤,類相關(guān)的語法,內(nèi)部類的語法勉盅,繼承相關(guān)的語法佑颇,異常的語法,線程的語...
    子非魚_t_閱讀 31,639評論 18 399