大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Servlet跳轉(zhuǎn)頁面的方法解說

Servlet跳轉(zhuǎn)頁面的方法解說

更新時間:2021-06-23 16:42:13 來源:動力節(jié)點(diǎn) 瀏覽868次

servlet跳轉(zhuǎn)頁面的方法:

跳轉(zhuǎn)分為兩部分,一部分發(fā)生在servlet,另一部分發(fā)生在JSP,JSP就是servlet,但是兩者還是有部分差異。

1.Servlet:(跳轉(zhuǎn)發(fā)生在doGet,doPost等方法里)

(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

2.JSP

(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)。

3.請求轉(zhuǎn)發(fā)RequestDispatcher.forward方法和響應(yīng)(重定向)轉(zhuǎn)發(fā)HttpServletResponse.sendRedirect方法的總結(jié)比較:

  • RequestDispatcher.forward方法只能將請求轉(zhuǎn)發(fā)給同一個web應(yīng)用中的組件,而HttpServletResponse.sendRedirect方法不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,還可以重定向到同一個站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對URL重定向到其他站點(diǎn)的資源。如果傳遞給HttpServletResponse.sendRedirect方法的相對URL以"/“開頭,它是相對于整個web站點(diǎn)的根目錄;如果創(chuàng)建RequestDispatcher對象時指定的相對URL以”/"開頭,它是相對于當(dāng)前web應(yīng)用程序的根目錄。
  • 調(diào)用HttpServletResponse.sendRedirect方法重定向的訪問過程結(jié)束后,瀏覽器地址欄中顯示的URL會發(fā)生改變,由初始的URL地址重定向為目標(biāo)URL;而調(diào)用RequestDispatcher.forward方法的請求轉(zhuǎn)發(fā)過程結(jié)束后,瀏覽器地址欄保持初始的URL地址不變。
  • HttpServletResponse.sendRedirect方法對瀏覽器請求直接作出響應(yīng),響應(yīng)的結(jié)果就是告訴瀏覽器重新發(fā)出對另一個URL的訪問請求;RequestDispatcher.forward方法在服務(wù)器端內(nèi)部發(fā)生了轉(zhuǎn)發(fā)行為。
  • RequestDispatcher.forward方法的調(diào)用者與被調(diào)用者之間共享相同的request對象,它們屬于同一個訪問請求和響應(yīng)過程;而HttpServletResponse.sendRedirect方法調(diào)用者與被調(diào)用者使用各自的request對象和response對象,它們屬于兩個獨(dú)立的訪問請求和響應(yīng)過程。對于同一個web應(yīng)用程序的內(nèi)部資源之間的跳轉(zhuǎn),特別是跳轉(zhuǎn)之前要對請求進(jìn)行一些前期預(yù)處理,并使用HttpServletRequest.setAttribute方法傳遞預(yù)處理結(jié)果,那就應(yīng)該使用RequestDispatcher.forward方法。不同web應(yīng)用程序之間的重定向,特別是要重定向到另一個web站點(diǎn)上的資源情況,都應(yīng)該使用HttpServletResponse.sendRedirect方法。
  • 無論哪種方法,在調(diào)用它們之前,都不能有內(nèi)容已經(jīng)被實(shí)際輸出到了客戶端。如果緩沖區(qū)已經(jīng)有了一些內(nèi)容,這些內(nèi)容將從緩沖區(qū)中清除。

重定向和請求轉(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ù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩精品中文字幕久久 | 欧美日韩国产一区二区三区播放 | 老司机午夜影院 | 四虎永久视频 | 91宅男| 久热这里只精品热在线观看 | 五月综合激情久久婷婷 | 四虎免费永久在线播放 | 日本不卡在线视频 | 手机在线一区二区三区 | 久久精品国语 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 亚洲尹人| 精品一区二区三区免费视频 | 国产毛片女人18水多 | 欧洲午夜视频 | 五月天色区 | 美女又xx又xx免费 | 亚洲另类伦春色综合妖色成人网 | 亚洲一区二区三区精品视频 | 免费一级欧美大片久久网 | 中文字幕一区二区精品区 | 偷自拍视频区综合视频区 | 美女视频黄a视频免费全过程在线 | 久久夜夜 | 一级毛片大全 | 亚洲精品国产字幕久久不卡 | 看全色黄大色大片免费久久久 | 狠狠亚洲婷婷综合色香 | 狠狠干夜夜 | 国产精品91在线 | 精品一区二区三区在线播放 | 九九精品视频一区在线 | 久久综合九色综合97婷婷女人 | 在线综合 亚洲 欧美中文字幕 | 久久国产乱子伦精品免费强 | 久久精品国产线看观看亚洲 | 久久青草免费91线频观看不卡 | 日本免费不卡一区 | 美国成人毛片 | 色中文字幕在线 |