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