JSP頁面跳轉(zhuǎn)方法小結(jié)
實(shí)現(xiàn)JSP頁面跳轉(zhuǎn),有如下幾種方式:
n 使用href超鏈接標(biāo)記 (客戶端跳轉(zhuǎn))
n 使用JavaScript (客戶端跳轉(zhuǎn))
n 提交表單 (客戶端跳轉(zhuǎn))
n 使用response對(duì)象 (客戶端跳轉(zhuǎn))
n 使用forward動(dòng)作標(biāo)記 (服務(wù)器端跳轉(zhuǎn))
n 使用RequestDispatcher類 (服務(wù)器端跳轉(zhuǎn))
1、使用response對(duì)象
(1) 調(diào)用sendRedirect()方法,重定向。
注意以下兩點(diǎn):
Ø sendRedirect()可以帶參數(shù)傳遞
例如:
sendRedirect(“/main.jsp?userName=zhangsan”
Ø sendRedirect()之后,應(yīng)該緊跟一句return
sendRedirect()是通過瀏覽器來做轉(zhuǎn)向的,所以只有在頁面處理完成后,才會(huì)有實(shí)際的動(dòng)作。既然你已經(jīng)要做轉(zhuǎn)向了,那么后面的輸出還有什么意義呢?而且有可能會(huì)因?yàn)楹竺娴妮敵鰧?dǎo)致轉(zhuǎn)向失敗。
(2) 調(diào)用setHeader()方法,等待若干秒后,自動(dòng)重定向到另一個(gè)頁面。
可以通過response對(duì)象,調(diào)用setHeader(“Refresh”, “時(shí)間; 目標(biāo)頁面”)方法,實(shí)現(xiàn)等待若干秒后,自動(dòng)重定向到另一個(gè)頁面。
response.setHeader("Refresh", "10; url=login.jsp");
上述代碼表示等待10秒后,將自動(dòng)重定向到login.jsp這個(gè)頁面。
2、使用forward動(dòng)作標(biāo)記
response重定向和forward跳轉(zhuǎn)的區(qū)別
(1) response重定向
n 執(zhí)行完頁面的所有代碼,再跳轉(zhuǎn)到目標(biāo)頁面。
n 跳轉(zhuǎn)到目標(biāo)頁面后,瀏覽器地址欄中的URL會(huì)改變。
n 在瀏覽器端重定向。
n 可以跳轉(zhuǎn)到其它服務(wù)器上的頁面,
例如:response.sendRedirect(“http://www.baidu.com”)
(2) forward跳轉(zhuǎn)
n 直接跳轉(zhuǎn)到目標(biāo)頁面,其后的代碼不再執(zhí)行。
n 跳轉(zhuǎn)到目標(biāo)頁面后,瀏覽器地址欄中的URL不會(huì)改變。
n 在服務(wù)器端重定向。
n 無法跳轉(zhuǎn)到其它服務(wù)器上的頁面。
3、使用RequestDispatcher類
基本用法:
RequestDispatcher rd = request.getRequestDispatcher("目標(biāo)頁面"); rd.forward(request,response);
使用RequestDispatcher實(shí)現(xiàn)頁面跳轉(zhuǎn),和使用forward動(dòng)作標(biāo)記實(shí)現(xiàn)頁面跳轉(zhuǎn),其基本原理是一樣的。
response重定向和RequestDispatcher跳轉(zhuǎn)的區(qū)別
(1) response重定向
n 執(zhí)行完頁面的所有代碼,再跳轉(zhuǎn)到目標(biāo)頁面。
n 跳轉(zhuǎn)到目標(biāo)頁面后,瀏覽器地址欄中的URL會(huì)改變。
n 在瀏覽器端重定向。
n 可以跳轉(zhuǎn)到其它服務(wù)器上的頁面,
例如:response.sendRedirect(“http://www.baidu.com”)
(2) RequestDispatcher跳轉(zhuǎn)
n 執(zhí)行完所有代碼,再跳轉(zhuǎn)到目標(biāo)頁面。
n 跳轉(zhuǎn)到目標(biāo)頁面后,瀏覽器地址欄中的URL不會(huì)改變。
n 在服務(wù)器端重定向。
n 無法跳轉(zhuǎn)到其它服務(wù)器上的頁面。
forward跳轉(zhuǎn)和RequestDispatcher跳轉(zhuǎn)的區(qū)別
(1) forward跳轉(zhuǎn)
n forward動(dòng)作標(biāo)記之后的代碼,不再執(zhí)行,立即跳轉(zhuǎn)到目標(biāo)頁面。
n 指定目標(biāo)頁面時(shí),既可以使用絕對(duì)路徑,也可以使用相對(duì)路徑。
(2) RequestDispatcher跳轉(zhuǎn)
n 執(zhí)行完所有代碼,包括RequestDispatcher之后的所有代碼,再跳轉(zhuǎn)到目標(biāo)頁面。
n 指定目標(biāo)頁面時(shí),只能使用絕對(duì)路徑。
以上所述是小編給大家介紹的JSP頁面跳轉(zhuǎn)方法小結(jié),希望對(duì)大家有所幫助,如果大家有疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- Spring boot 跳轉(zhuǎn)到j(luò)sp頁面的實(shí)現(xiàn)方法
- ajax 提交數(shù)據(jù)到后臺(tái)jsp頁面及頁面跳轉(zhuǎn)問題
- jsp頁面顯示數(shù)據(jù)庫的數(shù)據(jù)信息表
- bootstrap制作jsp頁面(根據(jù)值讓table顯示選中)
- 攔截JSP頁面,校驗(yàn)是否已登錄詳解及實(shí)現(xiàn)代碼
- 動(dòng)態(tài)jsp頁面轉(zhuǎn)PDF輸出到頁面的實(shí)現(xiàn)方法
- 在JSP頁面中獲取當(dāng)前日期時(shí)間的方法
- 詳解直接訪問WEB-INF目錄下的JSP頁面的方法
相關(guān)文章
JSP實(shí)現(xiàn)用戶登錄、注冊(cè)和退出功能
這篇文章主要為大家詳細(xì)介紹了JSP實(shí)現(xiàn)用戶登錄、注冊(cè)和退出功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05在 Linux 上安裝Apache+ApacheJServ+JSP
在 Linux 上安裝Apache+ApacheJServ+JSP...2006-10-10HttpClient Post 二進(jìn)制/字節(jié)流/byte[]實(shí)例代碼
這篇文章主要介紹了 HttpClient Post 二進(jìn)制/字節(jié)流/byte[]實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-06-06jsp實(shí)現(xiàn)針對(duì)excel及word文檔的打印方法
這篇文章主要介紹了jsp實(shí)現(xiàn)針對(duì)excel及word文檔的打印方法,涉及JSP操作excel及word的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10JSP開發(fā)入門(一)--安裝好你的機(jī)器來使用JSP
JSP開發(fā)入門(一)--安裝好你的機(jī)器來使用JSP...2006-10-10