servlet頁面跳轉(zhuǎn)方法總結(jié)

servlet頁面跳轉(zhuǎn)方法總結(jié)

ID:35294936

大?。?07.00 KB

頁數(shù):5頁

時(shí)間:2019-03-23

servlet頁面跳轉(zhuǎn)方法總結(jié)_第1頁
servlet頁面跳轉(zhuǎn)方法總結(jié)_第2頁
servlet頁面跳轉(zhuǎn)方法總結(jié)_第3頁
servlet頁面跳轉(zhuǎn)方法總結(jié)_第4頁
servlet頁面跳轉(zhuǎn)方法總結(jié)_第5頁
資源描述:

《servlet頁面跳轉(zhuǎn)方法總結(jié)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、Servlet頁面跳轉(zhuǎn)方法簡介JSP頁面中,實(shí)現(xiàn)頁面跳轉(zhuǎn)發(fā)生在兩種情況下。一種是發(fā)生在servlet中,這是一種比較常見的跳轉(zhuǎn)頁面的方式,它的優(yōu)點(diǎn)是可以在servlet中做大量業(yè)務(wù)邏輯處理,通過處理最終返回到相應(yīng)的顯示介面,這種方法隱藏業(yè)務(wù)邏輯,符合MVC架構(gòu)設(shè)計(jì);另一種方式是在JSP頁面中,因?yàn)镴SP也就是特殊的servlet,不過還是有點(diǎn)差異滴,這里可以請(qǐng)讀者自行查閱其相異之處。通過JSP進(jìn)行頁面的跳轉(zhuǎn)一般情況是傳遞參數(shù)比較小,不需要過多的邏輯處理,對(duì)安全性要求較低,能夠進(jìn)行簡單的數(shù)據(jù)顯示可以了;這種方式操作更加靈活;在簡單頁面跳轉(zhuǎn)過程中使用較多。下面介紹兩種方式的一些常見方法:Ser

2、vlet:在servlet中,一般在doGet(),doPost()等方法里,實(shí)現(xiàn)頁面的跳轉(zhuǎn)。sendRedirect方式:格式:response.sendRedirect(“index.jsp”);注釋:當(dāng)前頁面跳轉(zhuǎn)到index.jsp頁頁面(可以跳轉(zhuǎn)的相應(yīng)路徑);sendRedirect可以將頁面跳轉(zhuǎn)到任何頁面,不只局限于當(dāng)前的web應(yīng)用中,還可以跳轉(zhuǎn)到其他的網(wǎng)站頁面。如:response.sendRedirect("http://www.sohu.com");這種方式跳轉(zhuǎn)后瀏覽器地址欄發(fā)生變化,如果這種方式要傳值出去的話,只能在使用QueryString這種方式,在url中帶para

3、meter或者放在session中,而無法使用request.setAttribute來傳遞。forward方式:格式:request.getSession().setAttribute("user","jake");request.getRequestDispatcher("index.jsp").forward(request,response);Servlet中forward方式只能跳轉(zhuǎn)到本web應(yīng)用中的頁面上。在頁面跳轉(zhuǎn)后,瀏覽器地址欄不會(huì)發(fā)生變化。開發(fā)人員在使用這種方式跳轉(zhuǎn),進(jìn)行參數(shù)傳值可以使用三種方法:urlquerystring,Session,request.setAttr

4、ibute();JSP頁面跳轉(zhuǎn)方式:sendRedirect();response.sendRedirect();這種方式和servlet的response.sendRedirect()方式用戶一樣。但是在使用此語句前不允許有out.flush();如果有,系統(tǒng)會(huì)有異常:java.lang.IllegalStateException:Can'tsendRedirect()afterdatahascommittedtotheclient.atcom.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpR

5、esponse.java:558)這種方式頁面跳轉(zhuǎn)后瀏覽器地址欄變化;如果要跳轉(zhuǎn)到其他主機(jī)下,頁面跳轉(zhuǎn)后,session等相呼應(yīng)操作均已經(jīng)失效;別人的應(yīng)用不會(huì)知道你的應(yīng)用的Session和其他屬相。response.setHeader();格式:response.setHeader("index.jsp","user.jsp");這條語句前不允許有out.flush(),如果有,頁面不會(huì)跳轉(zhuǎn)。跳轉(zhuǎn)后瀏覽器地欄變化此語句后面的語句執(zhí)行完成后才會(huì)跳轉(zhuǎn)。格式:此語句前不允許有out.flush(),如果

6、有,會(huì)有異常:java.lang.IllegalStateException:forward()notallowedafterbufferhascommitted.atcom.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)atcom.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)atcom.caucho.jsp.PageContextImpl.forward

7、(PageContextImpl.java:836)跳轉(zhuǎn)后瀏覽器地址欄不變,但是只能跳下此語句后面的語句執(zhí)行完成后才會(huì)跳轉(zhuǎn)。跳轉(zhuǎn)效率比較:A、:效率高,速度快1.地址欄不改變跳轉(zhuǎn)-服務(wù)器端跳轉(zhuǎn),服務(wù)器之間內(nèi)部轉(zhuǎn),相同的request,可傳參;2.執(zhí)行到跳轉(zhuǎn)語句后無條件立刻跳轉(zhuǎn),之后的代碼不再被執(zhí)行;注意:如果使用forward跳轉(zhuǎn),則一定要在跳轉(zhuǎn)之前釋放掉全部的

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。