深入理解ServletRequest與ServletResponse

請求和相應是Web交互最基本的模式,在Servlet中,分別用HttpServletRequest與HttpServletResponse來表示Http請求和響應。這兩個類均來自javax.servlet.http包,是J2EE Servlet與JSP規範的一部分,因此,談及
HttpServletRequest與HttpServletResponse的時候,其實都是和Servlet(包括JSP)有關的。與HTML、ASP、PHP是沒有關係的,你也無法在HTML中使用它們。

這裏寫圖片描述

下面是一個詳細過程:

這裏寫圖片描述

一、ServletRequest

代表一個HTTP請求,請求在內存中是一個對象,這個對象是一個容器,可以存放請求參數和屬性。

1、請求對象何時被創建,當通過URL訪問一個JSP或者Servlet的時候,也就是當調用Servlet的service()、doPut()、doPost()、doXxx()方法時候的時候,執行Servlet的web服服務器就自動創建一個ServletRequest和ServletResponse的對象,傳遞給服務方法作爲參數。

2、請求對象由Servlet容器自動產生,這個對象中自動封裝了請求中get和post方式提交的參數,以及請求容器中的屬性值,還有http頭等等。當Servlet或者JSP得到這個請求對象的時候,就知道這個請求時從哪裏發出的,請求什麼資源,帶什麼參數等等。

3、ServletRequest的層次結構
javax.servlet.ServletRequest
javax.servlet.http.HttpServletRequest

4、通過請求對象,可以獲得Session對象和客戶端的Cookie。

5、請求需要指定URL,瀏覽器根據URL生成HTTP請求併發送給服務器,請求的URL有一定的規範:

這裏寫圖片描述

二、ServletResponse

也是由容器自動創建的,代表Servlet對客戶端請求的響應,響應的內容一般是HTML,而HTML僅僅是響應內容的一部分。
這裏寫圖片描述

相應對象有以下功能:
1、向客戶端寫入Cookie
2、重寫URL
3、獲取輸出流對象,向客戶端寫入文本或者二進制數據
4、設置響應客戶端瀏覽器的字符編碼類型
5、設置客戶端瀏覽器的MIME類型。

三、GET與POST的本質區別

get請求的參數參數在url裏面,不安全,post請求的參數放在請求體中,安全。
這裏寫圖片描述
這裏寫圖片描述

四、認識MIME類型

這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

本文出自 “熔 巖” 博客,請務必保留此出處http://lavasoft.blog.51cto.com/62575/275586

發佈了37 篇原創文章 · 獲贊 54 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章