1. 請求的轉發
1)什麼是請求轉發?
是指Servlet對一個請求進行初步的處理,然後交給另一個元件(Servlet,JSP,Html)來生成響應内容
一般情況下,都是Servlet對請求進行處理,然後交給JSP來生成響應内容
2) 為什麼用請求轉發?
充分利用不同元件的特點,發揮元件的優勢,讓元件配合工作,提高開發的效率
3)如何實作轉發?
1. 向request中綁定資料
存:request.setAttribute(String name,Object value);
取:Object value=request.getAttribute(String name)
2. 擷取請求轉發器
RequestDispatcher rd=
request.getRequestDispatcher("/login.jsp");
3. 轉發請求
rd.forward(request,response);
4) 請求轉發的特點
1. 一次請求,一次響應
2. 位址欄不會發生改變
3. 轉發經過的所有元件使用的是同一個request對象,是以可以使用request來共享資料
4. 請求轉發的目的地隻能是目前項目中的元件,不能是其他項目或網站的内容
5)常見面試題
請簡述2種常見的請求(資源)跳轉方式的差別
- 2種常見的資源跳轉方式:請求轉發和請求重定向
- 請求重定向:伺服器在一次響應中,通知浏覽器去請求一個新的url
- 請求轉發:Servlet對請求進行初步的處理,交給另一個元件來生成響應内容
- 什麼時候用轉發?什麼時候用重定向?
- 目的地是目前項目内部還是外部? 外部 -> 重定向
- 是否需要使用request共享資料? 需要 -> 轉發
- 如果是内部且不用共享資料,優先用轉發,效率更高
1. 重定向
伺服器在一次響應中,通知浏覽器去請求一個新的url
##1) 為什麼要學重定向
1. 業務需要:比如未登入不能購買,先登入
2. 優化使用者體驗:比如登入成功後,自動跳轉商品購買頁面
##2)如何實作重定向
原理:302響應狀态碼+location的響應頭
API:
response.sendRedirect(“url”)
##3)重定向的特點
1. 一共是2次請求,2次響應
2. 位址欄會發生變化,顯示的是第二次請求的位址
3. 重定向既可以定向到目前伺服器内部的資源,也可以定向到其它的網站
1. 伺服器内部資源: listUser
2. 其它網站的資源: http://www.baidu.com