關于JSP實現頁面跳轉的方法大家了解多少呢?今天錯新小編就為大家詳細介紹關于JSP實現頁面跳轉的方法,如果你也感興趣的話不妨一起去了解了解具體內容吧。
?實現JSP頁面跳轉,有如下幾種方式:
n??????? 使用href超鏈接標記????????????? (客戶端跳轉)
n??????? 使用JavaScript???????????????????????????? (客戶端跳轉)
n??????? 提交表單????????????????????????????????????? (客戶端跳轉)
n??????? 使用response對象??????????????????????????? (客戶端跳轉)
n??????? 使用forward動作標記???????????????? (服務器端跳轉)
n??????? 使用RequestDispatcher類???? (服務器端跳轉)
1、使用response對象
?????? (1) 調用sendRedirect()方法,重定向。
注意以下兩點:
???????? sendRedirect()可以帶參數傳遞
例如:
sendRedirect(“/main.jsp?userName=zhangsan”
???????? sendRedirect()之后,應該緊跟一句return
sendRedirect()是通過瀏覽器來做轉向的,所以只有在頁面處理完成后,才會有實際的動作。既然你已經要做轉向了,那么后面的輸出還有什么意義呢?而且有可能會因為后面的輸出導致轉向失敗。
?????? (2) 調用setHeader()方法,等待若干秒后,自動重定向到另一個頁面。?
?????? 可以通過response對象,調用setHeader(“Refresh”, “時間; 目標頁面”)方法,實現等待若干秒后,自動重定向到另一個頁面。
response.setHeader("Refresh", "10; url=login.jsp");
?
上述代碼表示等待10秒后,將自動重定向到login.jsp這個頁面。
2、使用forward動作標記
response重定向和forward跳轉的區別
(1) response重定向
n??????? 執行完頁面的所有代碼,再跳轉到目標頁面。
n??????? 跳轉到目標頁面后,瀏覽器地址欄中的URL會改變。
n??????? 在瀏覽器端重定向。
n??????? 可以跳轉到其它服務器上的頁面,
例如:response.sendRedirect(“http://www.baidu.com”)
(2) forward跳轉
n??????? 直接跳轉到目標頁面,其后的代碼不再執行。
n??????? 跳轉到目標頁面后,瀏覽器地址欄中的URL不會改變。
n??????? 在服務器端重定向。
n??????? 無法跳轉到其它服務器上的頁面。?
3、使用RequestDispatcher類
基本用法:
RequestDispatcher rd = request.getRequestDispatcher("目標頁面");rd.forward(request,response);
使用RequestDispatcher實現頁面跳轉,和使用forward動作標記實現頁面跳轉,其基本原理是一樣的。
response重定向和RequestDispatcher跳轉的區別
(1) response重定向
n??????? 執行完頁面的所有代碼,再跳轉到目標頁面。
n??????? 跳轉到目標頁面后,瀏覽器地址欄中的URL會改變。
n??????? 在瀏覽器端重定向。
n??????? 可以跳轉到其它服務器上的頁面,
例如:response.sendRedirect(“http://www.baidu.com”)?
(2) RequestDispatcher跳轉
n??????? 執行完所有代碼,再跳轉到目標頁面。
n??????? 跳轉到目標頁面后,瀏覽器地址欄中的URL不會改變。
n??????? 在服務器端重定向。
n??????? 無法跳轉到其它服務器上的頁面。?
forward跳轉和RequestDispatcher跳轉的區別
(1) forward跳轉
n??????? forward動作標記之后的代碼,不再執行,立即跳轉到目標頁面。
n??????? 指定目標頁面時,既可以使用絕對路徑,也可以使用相對路徑。?
(2) RequestDispatcher跳轉
n??????? 執行完所有代碼,包括RequestDispatcher之后的所有代碼,再跳轉到目標頁面。
n??????? 指定目標頁面時,只能使用絕對路徑。
以上所述是小編給大家介紹的JSP實現頁面跳轉的方法,希望對大家有所幫助,如果大家有疑問歡迎給我留言,小編會及時回復大家的!
新聞熱點
疑難解答