更新時間:2022-04-14 09:51:53 來源:動力節(jié)點 瀏覽10698次
Java跳轉(zhuǎn)頁面有幾種方法?動力節(jié)點小編來告訴大家。
當(dāng)然,在 servlet 中,跳轉(zhuǎn)一般發(fā)生在 doGet、doPost 等方法中。
1.重定向
響應(yīng)。SendRedirect("/a.sp");
頁面的路徑是相對路徑。SendRedirect 可以將一個頁面重定向到任何頁面,并且不一定限于 Web 應(yīng)用程序,例如:
響應(yīng)。SendRedirect("//www.jb51.net");
跳轉(zhuǎn)后瀏覽器地址欄發(fā)生變化。
如果要通過這種方式傳出值,只能在url或者session中帶參數(shù)傳遞,不能通過request-setattribute傳遞。
2.前進(jìn)的道路
RequestDispatcher 調(diào)度程序 = 請求。GetRequestDispatcher("/a.sp");
調(diào)度員。轉(zhuǎn)發(fā)(請求、響應(yīng));
頁面的路徑是相對路徑。前進(jìn)模式只能跳轉(zhuǎn)到本 Web 應(yīng)用程序中的頁面。
跳轉(zhuǎn)后瀏覽器地址欄沒有變化。
這樣傳值的方式有3種:url中的parameter、session、request-setattribute
1.響應(yīng)。發(fā)送重定向();
servlet 執(zhí)行 response.sendredirect() 的方式相同。
Out.flush() 不允許在此語句之前。如果是這樣,就會有一個例外:
Java. Lang.IllegalStateException: Can 't sendRedirect () after data has commited to the client。
在 Caucho. Server服務(wù)器。聯(lián)系。抽象HttpResponse。發(fā)送重定向(AbstractHttpResponse。Java:558)
跳轉(zhuǎn)后瀏覽器地址欄變化
如果要跳轉(zhuǎn)到不同的主機,跳轉(zhuǎn)后,這條語句后面的語句會繼續(xù)執(zhí)行,就好像開啟了一個新的Java線程,但是response的操作是沒有意義的;
如果要跳轉(zhuǎn)到同一個主機,該語句后面的語句直到執(zhí)行完成才會跳轉(zhuǎn);
2.響應(yīng)。SetHeader("位置", "");
此語句之前不允許out.flush(),如果是,則頁面不跳轉(zhuǎn)。
跳轉(zhuǎn)后瀏覽器地址欄變化
該語句后面的語句在完成之前不會跳轉(zhuǎn)
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743