我們有兩大種方式來實現頁面跳轉:1、JS(javascript);2、jsp跳轉
先說jsp(金j三s胖p):
1、轉發:request.getRequestDispatcher("1.jsp").forward(request,response);
在服務器組件收到用戶請求后。經過它的處理后有傳遞給了另一個組件。不修改用戶的請求碼。
2、重定向:response.sendRedirect("success.jsp");
重定向一般是為了防止用戶提交完數據后點瀏覽器刷新或點后退之后產生重復提交
3、標准動作元素:<jsp:forward page="URL"/>
注意事項:
1、此語句前也不允許有out.flush(),如果有,會有異常:
2、跳轉后瀏覽器地址欄不變,但是只能跳到當前主機下
3、此語句后面的語句執行完成后才會跳轉
4、跳轉后得路徑變為當前路徑,圖片不是絕對路徑將無法顯示
簡單介紹3個js實現頁面跳轉:
1、window.location.href="URL"
2、window.navigate("URL")
3、window.location.replace("URL")
其他有如:
Meta設置跳轉
html中的meta信息里可以直接設置跳轉,可以設置跳轉延遲時間和跳轉url,經常應用,
比如支付完了告訴用戶支付成功並跳轉到訂單頁面,代碼非常簡單,就在<head>中加上一句:
<meta http-equiv="refresh" content="5;url=http://www.helloweba.com">
PHP header()函數跳轉
PHP的header()函數非常強大,其中在頁面url跳轉方面也調用簡單,使用header()直接跳轉到指定url頁面,這時頁面跳轉是302重定向:
$url = "http://www.helloweba.com/";
header( "Location: $url" );
我們有可能會遇到特殊的跳轉時,比如網站改版有個頁面地址要做301重定向,當然你可以通過web配置rewrite來實現,
但現在我要告訴大家,可以使用php的header()函數做301跳轉,代碼如下:
//301跳轉
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: $url" )