更新時間:2021-06-23 16:42:13 來源:動力節(jié)點(diǎn) 瀏覽868次
servlet跳轉(zhuǎn)頁面的方法:
跳轉(zhuǎn)分為兩部分,一部分發(fā)生在servlet,另一部分發(fā)生在JSP,JSP就是servlet,但是兩者還是有部分差異。
(1)redirect方式
response.sendRedirect("/index.jsp");頁面的路徑是相對路徑。sendRedirect可以將頁面跳轉(zhuǎn)到任何頁面,不一定局限于web應(yīng)用中,如:response.sendRedirect(“http://www.baidu.com”);
跳轉(zhuǎn)后瀏覽器地址發(fā)生變化,只能在url總帶parameter或者放在session中,無法使用request.setAttribute來傳遞值。
(2)forward方式
request.getRequestDispatcher("/index.jsp").forward(request,response);頁面的路徑是對路徑。forward方式只能跳轉(zhuǎn)到本web應(yīng)用中的頁面上。跳轉(zhuǎn)后地址欄不會發(fā)生變化。使用這種方式跳轉(zhuǎn),傳值可以使用三種方法:url中帶parameter,session,request.setAttribute
(1)response.sendRedirect();
和servlet的response.sendRedirect()方式一樣,
跳轉(zhuǎn)后瀏覽器地址欄會變化,如果要跳轉(zhuǎn)到不同主機(jī)下,跳轉(zhuǎn)后,此語句后面的語句,如同新開了線程,但是對response的操作已經(jīng)沒有意義了;如果要跳到相同主機(jī)下,此語句后面的語句執(zhí)行完成后才會跳轉(zhuǎn);
(2)response.setHeader(“Location”,"");
跳轉(zhuǎn)后瀏覽器地址欄發(fā)生變化,此語句后面的語句執(zhí)行完成后才能發(fā)生調(diào)轉(zhuǎn)
(3)jsp:forward page=""/
跳轉(zhuǎn)后瀏覽器地址欄不變,但是只能跳轉(zhuǎn)到當(dāng)前主機(jī)下,此語句后面的執(zhí)行語句執(zhí)行完成后才會跳轉(zhuǎn)。
重定向和請求轉(zhuǎn)發(fā)有一個重要的不同:
當(dāng)使用請求轉(zhuǎn)發(fā)時,JSP容器將使用一個內(nèi)部的方法來調(diào)用目標(biāo)頁面,新的頁面繼續(xù)處理同一個請求,而瀏覽器將不會知道這個過程。與之相反,重定向方式的含義是第一個頁面通知瀏覽器發(fā)送一個新的頁面請求。因為,當(dāng)你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL,而當(dāng)使用轉(zhuǎn)發(fā)時,該URL會保持不變。重定向的速度比轉(zhuǎn)發(fā)慢,因為瀏覽器還得發(fā)出一個新的請求。同時,由于重定向方式產(chǎn)生了一個新的請求,所以經(jīng)過一次重定向后,request內(nèi)的對象將無法使用。
以上就是動力節(jié)點(diǎn)小編介紹的"Servlet跳轉(zhuǎn)頁面的方法解說",希望對大家有幫助,想了解更多可查看Servlet教程技術(shù)文檔,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。
初級 202925
初級 203221
初級 202629
初級 203743