一 HTTP響應的格式web
web服務器對客戶端的響應通常包含:一個狀態行,一些響應報頭,一個空行和相應的文檔構成。 瀏覽器
1,狀態行:緩存
狀態行由HTTP版本,一個狀態代碼以及一段對應狀態代碼的簡短消息組成,表示請求是否被理解或被知足。HTTP版本由服務器決定。狀態碼通常由系統自動設置爲200。也能夠用Servlet設置狀態碼。消息巍峨自定義。服務器
2,響應報。post
3,空行網站
4,文檔url
二 如何設置狀態代碼spa
在向客戶程序發送任何文檔內容以前調用方法設置狀態代碼。.net
使用HttpServletResponse接口的setStatus,sedRedirect或sendError方法設置狀態碼。code
狀態代碼由3位數字組成,第一個數字定義了響應的類別,後面兩位數字沒有具體的分類。
在servlet中使用HttpServletResponse中定義的常量來引用狀態代碼。
1 設置任意狀態代碼:setStatus(int)方法
在用PrintWriter實際返回如何內容以前調用setstatus方法。
參數能夠爲int類型狀態代碼,也能夠爲HttpServletResponse中定義的常量。
2 設置302和404狀態代碼:sendRedirect(String url)和sendError(int code,String msg)方法。 兩者拋出IOException。
狀態代碼302命令瀏覽器鏈接到新的url。sendRedirect方法生成302響應及Location報頭,給出新的url放入Location報頭以前,系統自動將相對url轉換爲絕對url。
狀態代碼404用於服務器沒有找到文檔的狀況。sendError方法發送狀態代碼及小段簡短信息,信息被自動安排在HTML文檔中發送給用戶。
三 狀態代碼的做用
四 從新鏈接,重定位,刷新的區別:
從新鏈接不顯示任何中間頁面。
刷新的時候瀏覽器會臨時顯示一箇中間頁面。
重定位由另外的Servlet或網頁生成結果,而非該ServletB自己。
重定位做用:
預先知道目的地,能夠驗證相關數據後再轉送到相關目的地。 經過本身的網站公佈用戶須要訪問的網站連接,跟蹤用戶的行爲,統計訪問等。獲得相關信息後,再將用戶重定向到實際須要訪問的網站。
五 進行從新定位和跳轉到錯誤頁面
使用sendRedirect(String url)方法向瀏覽器發送302狀態代碼,瀏覽器自動從新鏈接到Location響應報頭中sendRedirect方法給出的URL,從新定位到相關頁面。
使用sendError(response.SC_NOT_FOUND,String msg)方法設置輸出的錯誤提示信息。
六 根據瀏覽器的不一樣將用戶從新定位到相關頁面的Servlet。
獲取User-Agent請求報頭區分不一樣的瀏覽器類型,使用sendRedirect(String url)方法向瀏覽器發送302狀態代碼,瀏覽器自動從新鏈接到Location響應報頭中sendRedirect方法給出的URL,從新定位到相關頁面。