1,服務器處理請求的流程:
- 服務器每次收到請求時,都會爲這個請求開闢一個新的線程。
- 服務器會把客戶端的請求數據封裝到request對象中,request就是請求數據的載體!
- 服務器還會創建response對象,這個對象與客戶端連接在一起,它可以用來向客戶端發送響應。
2,response:其類型爲HttpServletResponse
- ServletResponse-->與協議無關的類型
- HttpServletResponse-->與http協議相關的類型
回憶一下http協議!http協議中響應的內容包含哪些東西呢?
* 狀態碼:200表示成功、302表示重定向、404表示客戶端錯(訪問的資源不存在)、500表示服務器端錯
- > sendError(int sc) --> 發送錯誤狀態碼,例如404、500
- > sendError(int sc, String msg) --> 也是發送錯誤狀態碼,還可以帶一個錯誤信息!
- > setStatus(int sc) --> 發送成功的狀態碼,可以用來發送302
3,響應頭:Content-Type、Refresh、Location等等
頭就是一個鍵值對!可能會存在一個頭(一個名稱,一個值),也可能會存在一個頭(一個名稱,多個值!)
- > *****setHeader(String name, String value):適用於單值的響應頭,例如:response.setHeader("aaa", "AAA");
- > addHeader(String name, String value):適用於多值的響應頭
response.addHeader("aaa", "A");
response.addHeader("aaa", "AA");
response.addHeader("aaa", "AAA");
- > setIntHeader(String name, int value):適用於單值的int類型的響應頭
response.setIntHeader("Content-Length", 888);
- > addIntHeader(String name, int value):適用於多值的int類型的響應頭
- > setDateHeader(String name, long value):適用於單值的毫秒類型的響應頭
response.setDateHeader("expires", 1000 * 60 * 60 * 24);
- > addDateHeader(String name, long value):適用於多值的毫秒類型的響應頭