servlet與jsp核心編程讀書筆記

servlet與jsp核心編程讀書筆記

ID:13236082

大小:160.50 KB

頁數(shù):17頁

時間:2018-07-21

servlet與jsp核心編程讀書筆記_第1頁
servlet與jsp核心編程讀書筆記_第2頁
servlet與jsp核心編程讀書筆記_第3頁
servlet與jsp核心編程讀書筆記_第4頁
servlet與jsp核心編程讀書筆記_第5頁
資源描述:

《servlet與jsp核心編程讀書筆記》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第3章servlet基礎(chǔ)1.servlet的生命周期。a)init方法:首次創(chuàng)建servlet時,它的init方法會得到調(diào)用,因此,init是放置一次性設(shè)置代碼的地方。i.可以使用此方法進(jìn)行常規(guī)初始化,用來創(chuàng)建或載入在Servlet生命期內(nèi)用到的一些數(shù)據(jù),或者執(zhí)行某些一次性的計算。ii.由初始化參數(shù)控制的初始化。要理解init參數(shù)的動機,您需要了解什么樣的人可能希望對Servlet的行為方式進(jìn)行定制。其中包括:開發(fā)人員、最終用戶、部署人員。開發(fā)人員通過改變代碼改變Servlet的行為。最終用戶通過向HTML表單提供數(shù)據(jù)改變Servlet的行為。部署人員為了能夠在不修改

2、Servlet的源代碼的情況下,就可以將Servlet在機器間移動,以及改變特定的參數(shù)(例如,數(shù)據(jù)庫的地址,連接共享大小,或者數(shù)據(jù)文件的位置)。init參數(shù)的目的就是為了提供這項能力。b)service方法:在init之后,針對每個用戶請求,都會創(chuàng)建一個線程,該線程調(diào)用前面創(chuàng)建的實例的service方法。service方法檢查HTTP請求的類型(GET,POST,PUT,DELETE等)并相應(yīng)地調(diào)用doGet,doPost,doPut,doDelete等方法。c)doGet,doPost和doXxx方法GET請求起因于正常的URL請求,或沒有指定METHOD的HTML

3、表單。POST請求起因于特別將POST列為METHOD的HTML表單。你可以覆蓋doGet和/或doPost方法來處理。DELETE請求由doDelete處理,PUT由doPut方法處理,OPTIONS由doOptions處理,TRACE由doTrace方法處理。OPTIONS和TRACE的請求在Servlet中是自動支持的。doHead以處理HEAD請求(HEAD請求規(guī)定,服務(wù)器應(yīng)該只返回正常的HTTP頭,不含與之相關(guān)聯(lián)的文檔)。為了能夠更快地生成對HEAD請求的響應(yīng)(例如來自定制客戶的請求,只需要HTTP報頭,不需構(gòu)建實際的文檔輸出),會實現(xiàn)doHead方法。2.

4、SingleThreadModel接口a)通過讓Servlet實現(xiàn)這個接口,系統(tǒng)會保證不會有多個請求線程同時訪問該servlet的單個實例。大多數(shù)和情況下,系統(tǒng)將所有的請求排隊,一次只將一個請求轉(zhuǎn)給單個servlet實例。b)此接口已經(jīng)過時,如果要同步最好使用synchronized關(guān)鍵字。第4章客戶請求的處理:表單數(shù)據(jù)1.表單數(shù)據(jù)的讀取。a)單個值的讀?。篻etParameter(表單項名稱),表單項名稱大小寫敏感。如果表單項存在但沒有相應(yīng)的值,返回空的String;如果沒有這樣的表單項,則返回null。b)多個值的讀取:getParameterValues(表單項

5、名稱),如果同一表單項名稱在表單數(shù)據(jù)中多次出現(xiàn),則應(yīng)該調(diào)用getParameterValues(返回字符串的數(shù)組)。對于不存在的表單項名稱,getParameterValues的返回值是null,如果參數(shù)只有單一的值,則返回只有一個元素的數(shù)組。如果是HTML表單的設(shè)計者,最好保證每個文本字段、復(fù)選框或其他用戶界面元素都有一個唯一的名稱。1.參數(shù)名的查找:getParameterNames和getParameterMapgetParameterNames以Enumeration的形式返回表單項名稱列表,其中的的每一項都可以轉(zhuǎn)換成String,并可以用在getParame

6、ter或getParameterValues調(diào)用中。如果當(dāng)前請求中沒有表單名稱返回空的Enumeration(不是null)。Enumeration只是一個接口,它保證實際的類實現(xiàn)了hasMoreElements和nextElement方法:它并不保證具體的實現(xiàn)會采用某種特定的底層數(shù)據(jù)結(jié)構(gòu)。getParameterNames的替代方案是getParameterMap。這個方法返回一個Map:表單名稱(字符串)是表的鍵,表單項的值是表的值。2.讀取上載的文件和原始數(shù)據(jù):getReader或getInputStream當(dāng)數(shù)據(jù)不是HTML表單提交,而是來自于定制的客戶程序時

7、,可能需要自己讀取和分析這些數(shù)據(jù)。最常見的客戶程序是applet。當(dāng)數(shù)據(jù)來自于上載的文件時,可能需要自己讀取數(shù)據(jù)。servlet的API沒有定義任何機制來讀取元素的文件。3.多字符集輸入的讀?。簊etCharacterEncoding(字符集名稱)request.getParameter使用服務(wù)器的當(dāng)前字符集解釋輸入。要改變這種默認(rèn)行為,需要使用ServletRequest的setCharacterEncoding方法。setCharacterEncoding必須在訪問任何請求參數(shù)之前調(diào)用。我們可以按照某個字符集讀

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。