請求重定向:由客戶重新發(fā)起請求
請求轉(zhuǎn)發(fā):由服務器自己內(nèi)部分派請求給另一內(nèi)容處理
重定向
servlet中重定向方法:
response.sendRedirect(Java.lang.String location);
jsp中實現(xiàn)重定向:
<%response.sendRedirect("new.jsp"); %> //重定向到new.jsp
原理:
重定向與客戶端交互讳推,服務器將傳遞進來的location直接相應到客戶端,會產(chǎn)生302碼瞧毙,瀏覽器自動訪問新的location远剩。
特點:
兩次請求和相應URL地址發(fā)生了變化
數(shù)據(jù)會丟失,產(chǎn)生了兩個不同的HttpServletRequest對象
地址問題:
重定向有絕對地址和相對地址之分
絕對地址不加“/”
response.sendRedirect("second.do");
相對地址加“/”
response.sendRedirect(request.getContextPath()+"/second.do");
請求轉(zhuǎn)發(fā)
servlet中實現(xiàn)請求轉(zhuǎn)發(fā):
RequestDispatcher rd=request.getRequestDispatcher("second.do");
rd.forward(request, response);
jsp實現(xiàn)請求分派:
<jsp:forward page="apage.jsp" />
原理:
發(fā)生在服務器端他膳,一個servlet對象調(diào)用另外一個servlet對象堕阔,會將request和response傳遞過去;
特點:
只有一次請求和響應
URL地址不會改變
數(shù)據(jù)不會丟失
特別感謝 作者重山楊