一、請求轉發和請求包含瀏覽器
(1)請求轉發:
this.getServletContext().getRequestDispatcher("").forward(request,response);
request.getRequestDispatcher("").forward(request,response);
~請求轉發是但願將請求交給另一個資源執行,因此應該保證只有最後真正要執行的資源纔可以輸出數據,因此:
*請求轉發時,若是已經有數據被寫入到了response的緩衝區,可是這些數據尚未被髮送到客戶端,則請求轉發時,這些數據將會被清空.可是清空的只是響應中的實體內容部分,頭信息並不會被清空.服務器
(2)請求包含:將兩個資源的輸出進行合併後輸出
this.getServletContext().getRequestDispatcher("").include(request,response);
request.getRequestDispatcher("").include(request,response);
*被包含的Servlet程序不能改變響應消息的狀態碼和響應頭,若是它裏面存在這樣的語句,這些語句的執行結果將被忽略jsp
*常被用來進行頁面佈局佈局
(3)三種資源處理方式的區別
請求重定向
response.sendRedirect();
請求轉發
request.getRequestDispatcher().forward();
請求包含
request.getRequestDispatcher().include();
請求重定向和請求轉發的區別:
請求重定向地址欄會發生變化.請求轉發地址欄不發生變化.
請求重定向兩次請求兩次響應.請求轉發一次請求一次響應.
若是須要在資源跳轉時利用request域傳遞域屬性則必須使用請求轉發
若是但願資源跳轉後修改用戶的地址欄則使用請求重定向
若是使用請求轉發也能夠重定向也能夠,則優先使用請求轉發,減小瀏覽器對服務器的訪問次數減輕服務器的壓力.this
二、獲取請求編碼
三、請求之編碼原理url
四、響應之編碼原理spa
五、jsp訪問過程3d
六、jsp和servlet分工blog
七、url編碼
八、路徑