請求和相應是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