頁面跳轉(zhuǎn)的幾種方式:
--------------(網(wǎng)絡(luò)收藏)
http頭實現(xiàn)頁面跳轉(zhuǎn):
out.println("<meta http-equiv='refresh' content='0;url=xxxxx.jsp'>");
content是指跳轉(zhuǎn)的時間間隔,單位為秒
----------------------------------------------
forward方法實現(xiàn)跳轉(zhuǎn):
<%
String url = "index.jsp";
%>
<jsp:forward page=url>
<jsp:param name="id" value="<%=userid%>">
</jsp:forward>
-------------------------------------------------
response跳轉(zhuǎn):
response.sendRedirect(url);
或
response.encodeRedirectURL(response.encodeRedirectURL(url));
對要用的URL編碼,如果cookie打開的話,sessionid通過cookie傳遞,這個方法原樣返回;如果cookie沒打開的話,這個方法會在你的url后面加上sessionid的參數(shù),保證你的session傳遞。
---------------------------------------------------
區(qū)別:
forward執(zhí)行后,地址欄鏈接不變
sendRedirect()執(zhí)行后,地址欄鏈接會更換
由此可知forward的執(zhí)行是在服務(wù)器完成的,重定向到其他文件取出內(nèi)容輸出到頁面,并且可以附加參數(shù)傳遞
而sendRedirect,可以認為是客戶端完成,相當于客戶端又重新發(fā)了一個get請求,要服務(wù)器傳輸另一個文件過來。
<jsp:forward>能夠向目標文件傳送參數(shù)和值。如果使用了<jsp:param/>標簽的話
,目標文件必須是一個動態(tài)的文件,能夠處理參數(shù)。如果使用了非緩沖輸出,那么使用
<jsp:forward>時就要小心;如果使用<jsp:forward>之前,JSP文件已經(jīng)有了數(shù)據(jù),那么
文件運行將會出錯。<jsp:forward>標簽從一個JSP文件向另一個文件傳遞一個包含用戶
請求的request對象,<jsp:forward>標簽以下的代碼將不能運行。