㈠ java 如何實現頁面之間跳轉瀏覽器地址欄URL不變
url沒有變化是因為這個跳轉是在伺服器內部跳轉的。
我簡單說下瀏覽器的工作原理。瀏覽器發出一個地址請求到伺服器,伺服器根據這個地址找到相應的頁面資料返回給瀏覽器,最後瀏覽器將信息顯示給用戶。
但伺服器內部跳轉的時候,對瀏覽器來說是不知道的,它只負責把伺服器返回的信息顯示出來。
在java web里
servlet的doGet或doPost中用response.sendRedirect("重定向的地址");
在jsp中也可以用response.sendRedirect("重定向的地址");
jsp中還可以使用特定的標簽來重定向。
㈡ web中的跳轉語句 java中的跳轉語句
在JSP中,跳轉頁面有兩種方式:1.forward跳轉: 2.response跳轉:response.sendRedirect("跳轉頁面地址");兩種跳轉的區別如下:1.forward跳轉:a.伺服器端跳轉,地址欄不改變;b.執行到跳轉語句後馬上無條件跳轉,之後的代碼不再執行(跳轉之前一定要釋放全部資源);c.request設置的屬性在跳轉後的頁面仍可以使用;d.使用 傳遞參數。裂嘩岩2.response跳轉:a.客戶端跳轉,地址欄改變;b.所有代碼執行完畢後跳轉;c.跳轉後的頁面不能使用上一個頁面的request屬性;d.使用地址重寫傳遞參數(response.sendRedirect("URL?參數名=參數值"))。
一、跳轉到新頁面,並且是在新窗口中打開頁面:
function openHtml
{
//do someghing here...
window.open("xxxx.");
}
window是一個javascript對象,可以用它的open方法,需要注意的是,如果這個頁面不是一相相對路徑,那麼要加「://」,比如:
function openHtml
{
window.open("[]");
}
二、在本頁面窗口中跳轉:
function totest2
{
window.location.assign("test2.");
}
如果直接使用location.assgin也可以,但是window.location.assign更合理一些,當前窗口的location對象的assign方法。
另外,location對象還有一個方法replace也可以做頁面跳轉,它跟assign方法的區別在於:
replace 方法不會在 History 對象中生成一個新的紀錄。當使用該方法時,新的 URL 將覆蓋 History 對象中的當前紀錄。
頁面跳轉如果不蘆禪是在程序裡面的話都是通過a標簽鏈接跳轉的,而且a標簽的跳轉方式有
_blank是最常見的鏈接方式,表示超鏈接的目標地址在新建窗口中打開;
_self表示「相同窗口」。點擊鏈接後,地址欄不變;
_top表示整頁窗口;
_parent表示父窗口。
response.sendRedirect
重定向本質是兩次請求,附帶的參數會丟失,但是看你程序是從session里取數據,所以在本次會話內,你的數據有效,questions能正常取到數據,下面顯示會正常。如果是request 作用域內,就會取不到。
//騰訊網的適配代碼
//其他的適配代碼(後綴名為.js肆御並引用至網頁)
JSP跳轉到Servlet:
1. 注意,這里的url不能直接寫你的servlet名稱,而要填寫web.xml里該servlet的url-pattern,即「/xxxServlet"形式。有斜杠,斜杠,杠。另外,這種方式直接跳走了,在servlet里寫上跳轉回原頁面的語句,就會報錯java.io.IOException: Stream closed。
2. 同上,url有斜杠。這種方式的好處是servlet里不用寫跳轉語句,會自動回到原來頁面,因為這是一個動態包含文件命令。另外,該方式還能傳遞多個參數,你懂的。
3.藉助javascript.如
Servlet跳轉到JSP
1.response.sendRedirect("URL")跳轉後瀏覽器地址欄變化。可以將頁面跳轉到任何頁面,不一定局限於本web應用中。
這種方式要傳值出去的話,只能在url中帶parameter或者放在session中,無法使用request.setAttribute來傳遞。
2.request.getRequestDispatcher("/a.jsp")。dispatcher .forward(request, response);
Servlet頁面跳轉的路徑是相對路徑。forward方式只能跳轉到本web應用中的頁面上。跳轉後瀏覽器地址欄不會變化。
使用這種方式跳轉,傳值可以使用三種方法:url中帶parameter,session,request.setAttribute
你可以在jsp頁面使用超鏈接標簽 例如 點擊我跳轉
也可以在後台servlet中使用 重定向 例如 response.sendRedirect("xxx.jsp");
也可以使用轉發 例如 request.getRequestDispatcher("xxx.jsp").forward(request.response);
標簽:作文經典 上一篇:昆明的詩句 寫昆明的詩句 下一篇:偶爾的近義詞反義詞 偶爾的反義詞㈢ 在java web開發中,凡是能實現頁面跳轉的方法有哪些具體列出這些方法的實現語句
一、跳轉到新頁面,並且是在新窗口中打開頁面:
function openHtml()
{
//do someghing here...
window.open("xxxx.html");
}
window是一個javascript對象,可以用它的open方法,需要注意的是,如果這個頁面不是一相相對路徑,那麼要加「http://」,比如:
function openHtml()
{
window.open("http://www..com");
}
二、在本頁面窗口中跳轉:
function totest2()
{
window.location.assign("test2.html");
}
如果直接使用location.assgin()也可以,但是window.location.assign()更合理一些,當前窗口的location對象的assign()方法。
另外,location對象還有一個方法replace()也可以做頁面跳轉,它跟assign()方法的區別在於:
replace() 方法不會在 History 對象中生成一個新的紀錄。當使用該方法時,新的 URL 將覆蓋 History 對象中的當前紀錄。
㈣ Javaweb的跳轉問題
通俗來說,form表單是寫在前端頁面(如html、jsp)上的,<form>有一個『action』的參數,這里需要填寫目標地址,如果不填寫的話客戶端是不知道往哪裡發送信息的,因此form是由客戶端主動發送給伺服器(具體的地址就是action索要填的值)的。這屬於客戶端向伺服器發起請求,代碼表現為:
<form
action='10086.jsp' method='get' >
…………
</form>
就像你打10086,你問問題(提交表單),客服(伺服器)會根據你的問題(form)反饋答案。同理,正常來說,後台接收到前端發來的信息後,會進行一系列操作,最後發送結果回去。
====分割線====
而轉發和重定向的代碼是寫在後台代碼里的,因為並不是所有的業務都由同一個後台頁面處理(例如統一管理平台),前端form填的是頁面A,但實際上頁面A在接收到form後並不進行處理,而是通過轉發或者重定向的方式,發送給頁面B,頁面B處理後會把結果發送給A,然後A再反饋給前端。因此,這屬於伺服器向伺服器發起請求
轉發的代碼是request.getrequestdispatcher (10086-2.jsp).forward(request,response),特點是url不會變,客戶端無法判斷是form表單的後台頁面在處理還是別的頁面在處理(你在瀏覽器上是無法知道10086-2.jsp這個頁面的存在)。就像10086客戶有時候會讓你稍等,等待期間你是不知道他是在敲電腦還是找外援尋求答案。
重定向的代碼是response.sendRedirect("10086-2.jsp"),特點是url會變。瀏覽器的地址欄會明顯看到地址發生改變。就像10086客服告訴你該問題不是他負責的范圍,然後幫你轉接到其他相應的客戶。
至於怎麼判斷啥時候使用轉發,啥時候使用重定向,還請理解jsp的四大作用域之後再回頭思考。