1. 程式人生 > >request 文字 學習筆記

request 文字 學習筆記

request 文字 學習筆記

1 request對象常用API

1)取得請求頭相關的信息
*a)request.getHeader(String):String
b)request.getHeaders(String):Enumeration
c)getHeaderNames():Enumeration

*2 獲取請求參數的值

2)取得請求體相關的信息
a)request.getParameter(String):String
b)request.getParameterValues(String):String[]
註意:在GET請求方式下,如果參數不一致,返回null,可能出現空指針異常
c)BeanUtils框架能夠自動將String參數設置到JavaBean對象中

1)無需理會參數的類型,個數,但是參數名一定要和JavaBean中的字段一致
2)String->8種基本類型自動轉換,非8種基本類型可以註冊轉換器材
3)String或String[]類型的參數自動感知裝配

*3 request應用

1)防盜鏈
判段某個頁面來自於何方,即referer請求頭

2)收集表單數據
a)項目中,用戶請求的參數,最好做null或空串的二次判段

3)中文亂碼
a)POST方式下亂碼產生的原因:瀏覽器發送的編碼方式與Request對象的編碼方式不一致
解決方案:request.setCharacterEncoding("UTF-8),該方法只能解析請求體中的亂碼方式,除此之外,無力解決

b)如果用戶是post方式提交,在轉發情況下,依然是post請求,但重定向情況下,是get請求
c)如果用戶是get方式提交,在轉發和重定向情況下,都是get請求
d)405:本身請求是get請求,但未在servlet內提供對應的doGet()方法, post也是類似

*4 再談MVC設計模式

1)如果嚴格按照MVC思想的話,瀏覽器首頁訪問的是控制器,然後再由控制器轉發到視圖
2)位於WEB-INF/目錄下的資源,客戶端無法直接訪問,只能通過服務端轉發進入
3)request對象也可用於資源的轉發
request
.getRequestDispatcher("/WEB-INF/success.html")

.forward(request,response);
4)通過正則表達式驗證中文:[\u4E00-\uFA29]+
5)對於重定向而言,前後的二個Request域對象不同,如果取值不到,返回"null",不會報錯

5 request的細節

1)轉發是通過RequestDispatcher對象的forward(request,response)方法完成的
2)forward()方法之前的輸出,如果是輸出到緩沖區,再轉發到其他Servlet,那麽原緩沖區的數據忽略不計
3)forward()方法之前的輸出,如果真正輸出到瀏覽器,再轉發到其他Servlet,再轉發到其他Servlet代碼忽略不計
4)forward()方法之前的輸出,如果是對響應頭的設置,會保留到轉發的其他Servlet中

*6 重定向和轉發區別

1)轉發只能相對於當前web應用而言,不能轉發到其它web應用
重定向可以在當前web應用之外的其它web應用重寫向資源
2)轉發/表示當前web應用
重定向/表示web服務器的根目錄,即webapps目錄
3)轉發時,瀏覽器地址欄不變
重定向時,瀏覽器地址欄改變
4)轉發是服務端的內部行為,瀏覽器不知
重定向是瀏覽器和服務端的共同行為,瀏覽器必知
5)轉發時二個Servlet共享request域對象
重定向時二個Servlet獨享request域對象
6)request具有二義性:
a)請求對象
b)域對象

7 include包含

1)需要使用Servlet包含相同的頁面輸出時,類似於函數調用

8 會話
1)用戶輸出URL地址,有效訪問某個網站,在該網站上的一系列有效操作,隨後關閉瀏覽器的整個過程,叫一次會話
2)會話主要解決服務端如何保存每個客戶端對應的私有信息。
3)會話主要有二種:
a)Cookie技術[客戶端技術]
b)Session技術

*9 Cookie

1)Cookie是客戶端的技術
2)每次發送請求時,客戶端都會帶上各自已的不同Cookie到服務端,服務端一解析Cookie,就知道是哪個客戶端發送過來的信息
3)一個Cookie只能存儲一種類型的信息
4)更新某個名的Cookie,即向瀏覽器寫一個相同名的Cookie
5)Cookie一定要設置一個有效時間,如果不設置的話,默認該請求訪問結束後,該Cookie自動銷毀,用專業名詞來講,
Cookie的默認有效期時一個有效會話結束

request 文字 學習筆記