學(xué)習(xí)筆記一Servlet

1.1 Servlet API

包括四個包

1)javax.servlet ? ? 定義Servlet和Servlet容器之間契約的類和接口

2)javax.servlet.http ? 定義http Servlet和Sercvlet容器之間契約的類和接口

3)javax.servlet.annotation ? ?對Servlet锤躁、Filter足绅、Listener進(jìn)行標(biāo)注的注解

4)javax.servlet.descriptor ? ? ?為Web應(yīng)用程序的配置信息提供編程式訪問的類型


javax.servlet中的主要類型

interface: Servlet ServletRequest ServletResponse ServletContext ServletConfigRequestDispatcher Filter

Class ?: GenencServlet


Servlet接口作用:

Servlet容器把Servlet類加載到內(nèi)存中淳梦,并在Servlet實例中調(diào)用特定的方法绎谦。一個應(yīng)用程序中,一個Servlet類只有一個實例秽荞。

用戶請求引發(fā)Servlet容器調(diào)用一個Servlet的service方法,傳入一個ServletRequest實例和一個ServletResponse實例。

? ? ? ? ServletRequest實例:封裝當(dāng)前的http請求灵份。

? ? ? ? ServletResponse實例:當(dāng)前用戶的http響應(yīng)。

Servlet容器為每個應(yīng)用程序創(chuàng)建一個ServletContext實例哮洽。每個Servlet實例封裝一個ServletConfig填渠。



1.2 Servlet接口

定義五個方法:

void init(ServletConfig)

voidservice(ServletRequest,ServletResponse)

void destroy()

String getServletInfo()

ServletConfig getServletConfig()

init:第一次請求Servlet時,Servlet容器調(diào)用該方法

service:每次請求Servlet時鸟辅,Servlet容器調(diào)用該方法

destroy:要銷毀Servlet時氛什,Servlet容器調(diào)用該方法,通常發(fā)生在卸載應(yīng)用或者關(guān)閉Servlet容器時

getServletInfo:返回Servlet的描述

getServletConfig:返回Servlet容器傳給init方法的ServletConfig



1.3編寫基礎(chǔ)的Servlet程序

注解:

@WebServlet(name="MyServlet",urlPatterns={"/my"})

WebServlet注解類型來聲明一個Servlet匪凉,urlPatterns告訴容器哪個url調(diào)用這個Servlet


應(yīng)用程序的目錄結(jié)構(gòu)

——app

————WEB-INF

————————classes

——————————————package

——————————————————字節(jié)碼文件

————————lib

WEB-INF下只允許Servlet訪問枪眉,不允許用戶訪問



1.4 ServletRequest

對于每一個http請求,Servlet容器都會創(chuàng)建一個ServletRequest實例再层,將它傳給Servlet的service方法

ServletRequest接口中部分方法:

public int getContentLength() ? ?返回請求主體的字節(jié)數(shù)

public String getContentType() ? ? 返回請求主體的MIME類型

public String getParameter(String name) ? ?返回指定請求參數(shù)的值

public String getProtocol() ? ? 返回這個http請求的協(xié)議名稱和版本號



1.5 ServletResponse

在調(diào)用一個Servlet的service方法之前贸铜,Servlet容器會先創(chuàng)建一個ServletResponse,將它傳給service方法


ServletResponse接口中部分方法:

public PrintWriter getWriter()返回一個PrintWriter對象


1.6 ServletConfig

在Servlet容器初始化Servlet時聂受,Servlet容器將ServletConfig傳給Servlet的init方法蒿秦。

ServletConfig封裝通過@WebServlet或者部署描述符傳給一個Servlet的配置信息。

這種方式傳遞的每一條信息都稱為初始參數(shù)蛋济,由鍵和值組成棍鳖。


ServletConfig接口中部分方法:

String getInitParameter(String name) ? ? ? 獲取指定初始參數(shù)

Enumeration getInitParameterNames() ? ? 返回所有初始參數(shù)的鍵的enum對象




1.7 ServletContext

ServletContext表示Servlet應(yīng)用程序

在ServletConfig中調(diào)用getServletContext()可以獲得ServletContext對象

作用:可以共享能通過應(yīng)用程序的所有資源訪問的信息,促進(jìn)web對象的動態(tài)注冊碗旅。通過將一個內(nèi)部Map中的對象保存在ServletContext中來實現(xiàn)鹊杖。保存在ServletContext中的對象被稱為屬性attribute。


ServletContext部分方法:

Object getAttribute(String name)

EnumerationgetAttributeNames()

void setAttribute(String name,Objectobject)

void removeAttributr(String name)




1.8 GenericServlet抽象類

將init方法中的ServletConfig對象賦給一個內(nèi)部對象扛芽,通過getServletConfig()方法來獲取

為Servlet接口中的所有方法提供默認(rèn)實現(xiàn)

提供方法來封裝ServletConfig中的方法

使用中只需要覆蓋service方法即可




1.9 HTTP Servlet

javax.servlet.http中的主要類型

HttpServlet ——————>GenericServlet-------> Servlet

HttpSession

HttpServletRequest ——————>ServletRequest

HttpServletResponse ——————>ServletResponse

Cookie


HttpServlet特性:

不覆蓋service方法骂蓖,而是覆蓋DoGet或者DoPost方法

將用HttpServletRequest和HttpServletResponse代替ServletRequest和ServletResponse



HttpServletRequest 繼承ServletRequest接口

方法:

String getContextPath() ? ?返回請求context的請求URI部分

Cookie[] getCookies() ? ?返回一個cookie對象數(shù)組

String getHeader(String name) ? ? 返回http標(biāo)頭的值

String getMethod() ? ?返回請求的方法名稱

String getQueryString() ? ? 返回請求URL中的查詢字符串

HttpSession getSession() ? ?返回與請求有關(guān)的Session對象,如果沒有找到川尖,則創(chuàng)建一個新的Session對象

HttpSession getSession(boolean create) ? ?返回與請求有關(guān)的Session對象登下,如果沒有找到且未true,則創(chuàng)建一個新的Session對象



HttpServletResponse 表示HTTP環(huán)境中的Servlet響應(yīng)

方法:

void addCookie(Cookie cookie)給響應(yīng)對象添加一個cookie

void addHeader(String name,String value)給響應(yīng)對象添加一個標(biāo)頭

void sendRedirect(String location)發(fā)送響應(yīng)代號叮喳,將瀏覽器重定向到指定的位置




1.10處理HTML表單

Http輸入域或者文本域被當(dāng)做一個字符串發(fā)送到服務(wù)器被芳,用getParameter獲取

Http的select元素會給標(biāo)頭發(fā)送一個字符串,未選擇任何選項時馍悟,會發(fā)送顯示的選項值

帶有多個值得選擇元素畔濒,將發(fā)送一個字符串?dāng)?shù)組,用getParameterValues()獲取

被選中的復(fù)選框?qū)⒆址皁n”發(fā)送到服務(wù)器,未選中的復(fù)選框不發(fā)送任何內(nèi)容到服務(wù)器

單選按鈕將被選按鈕的值發(fā)送到服務(wù)器

表單中包含多個同名元素時锣咒,所有的值都會發(fā)送到服務(wù)器侵状,用getParameterValues獲取





1.11使用部署描述符

部署的一個方面是給Servlet映射配置的一條路徑

部署描述符被命名為web.xml,放在WEB-INF目錄下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赞弥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子趣兄,更是在濱河造成了極大的恐慌绽左,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艇潭,死亡現(xiàn)場離奇詭異拼窥,居然都是意外死亡,警方通過查閱死者的電腦和手機蹋凝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鲁纠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鳍寂,你說我怎么就攤上這事房交。” “怎么了伐割?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵候味,是天一觀的道長。 經(jīng)常有香客問我隔心,道長白群,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任硬霍,我火速辦了婚禮帜慢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唯卖。我一直安慰自己粱玲,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布拜轨。 她就那樣靜靜地躺著抽减,像睡著了一般。 火紅的嫁衣襯著肌膚如雪橄碾。 梳的紋絲不亂的頭發(fā)上卵沉,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音法牲,去河邊找鬼史汗。 笑死,一個胖子當(dāng)著我的面吹牛拒垃,可吹牛的內(nèi)容都是我干的停撞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼悼瓮,長吁一口氣:“原來是場噩夢啊……” “哼戈毒!你這毒婦竟也來了艰猬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤副硅,失蹤者是張志新(化名)和其女友劉穎姥宝,沒想到半個月后翅萤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恐疲,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年套么,在試婚紗的時候發(fā)現(xiàn)自己被綠了培己。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡胚泌,死狀恐怖省咨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情玷室,我是刑警寧澤零蓉,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站穷缤,受9級特大地震影響敌蜂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜津肛,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一章喉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧身坐,春花似錦秸脱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涯鲁,卻和暖如春遏片,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撮竿。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工吮便, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人幢踏。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓髓需,卻偏偏與公主長得像,于是被迫代替她去往敵國和親房蝉。 傳聞我的和親對象是個殘疾皇子僚匆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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