request.getRequestDispatcher()的两个方法forward()/include()!!!
RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");
請求轉發(fā): rd.forward( request , response );
請求包含: rd.include( request , response );
有時一個請求需要多個Servlet協(xié)作才能完成,所以需要在一個Servlet跳到另一個Servlet!
>一個請求跨多個Servlet,需要使用轉發(fā)和包含。
>請求轉發(fā):由下一個Servlet完成響應體!當前Servlet可以設置響應頭!(留頭不留體)
>請求包含:由兩個Servlet共同完成響應體!(留頭又留體)
>無論是請求轉發(fā)還是請求包含,都在一個請求范圍內(nèi)!使用同一個request和response!
request域
?? void setAttribute(String name ,Object value)
?? Object getAttribute(String name)
?? >同一個請求范圍內(nèi)使用request.setAttribute()/request.getAttribute()來傳值!前一個Servlet調(diào)用setAttribute()保存值,后一個Servlet調(diào)用getAttribute()獲取值;
請求轉發(fā)和重定向的區(qū)別:
>請求轉發(fā)是一個請求一次響應,而重定向是兩次請求兩次響應。
>請求轉發(fā)地址不變化,而重定向會顯示后一個請求的地址
>請求轉發(fā)只能轉發(fā)到本項目其它Servlet,而重定向不只能重定向到本項目的其它Servlet,還能定向到其它項目
>請求轉發(fā)是服務端行為,只需給出轉發(fā)的Servlet路徑,而重定向需要給出requestURI,既包含項目名!
?
來自網(wǎng)易博客:http://jamkong.blog.163.com/blog/static/2361940132014101841545703/
轉載于:https://www.cnblogs.com/JamKong/p/4928083.html
總結
以上是生活随笔為你收集整理的request.getRequestDispatcher()的两个方法forward()/include()!!!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [资料]Keychain 获取设备唯一
- 下一篇: 大道至简第五章阅读笔记