一, 使用href超鏈接標記 (客戶端跳轉)
二, 提交表單 (客戶端跳轉)
<form name="form" method="post" action="page2.jsp">
<input type="submit" value="跳轉1">
</form>
三, Javascrip事件 (客戶端跳轉)
<input type="button" value="跳轉2" onclick="next()">
<script type="text/javascript">
function next(){
window.location = "page2.jsp";
}
</script>
四, 使用response對象 (客戶端跳轉)(重定向)
<% response.sendRedirect("page2.jsp"); %> //sendRedirect()可以帶參數傳遞,后面應該緊跟一句return
<% response.setHeader("Refresh", "1;url=page2.jsp"); %> //1秒后,刷新,並跳到,page2.jsp頁面
五, 使用forward動作標記 (服務器端跳轉)(轉發)
jsp自帶的forword標簽來實現跳轉 <jsp:forward page="page2.jsp" />
六, 使用RequestDispatcher類 (服務器端跳轉)(轉發)
<% request.getRequestDispatcher("page2.jsp").forward(request, response);%>
response重定向和forward跳轉和RequestDispatcher的區別
(1) response重定向
執行完頁面的所有代碼,再跳轉到目標頁面。
跳轉到目標頁面后,瀏覽器地址欄中的URL會改變。
在瀏覽器端重定向。
可以跳轉到其它服務器上的頁面,response.sendRedirect(“http://www.baidu.com”)
(2) forward跳轉
forward動作標記之后的代碼,不再執行,直接跳轉到目標頁面。
跳轉到目標頁面后,瀏覽器地址欄中的URL不會改變。
在服務器端重定向。
無法跳轉到其它服務器上的頁面。
指定目標頁面時,既可以使用絕對路徑,也可以使用相對路徑。
(3) RequestDispatcher跳轉
執行完所有代碼,包括RequestDispatcher之后的所有代碼,再跳轉到目標頁面。
跳轉到目標頁面后,瀏覽器地址欄中的URL不會改變。
在服務器端重定向。
無法跳轉到其它服務器上的頁面。
指定目標頁面時,只能使用絕對路徑。