Java Web 请求转发与请求重定向
Java Web 請求轉(zhuǎn)發(fā)與請求重定向
請求轉(zhuǎn)發(fā)
服務(wù)器行為,即用戶向服務(wù)器發(fā)送了一次http請求,該請求可能會經(jīng)過多個信息資源處理以后菜返回給用戶,各個信息資源使用請求轉(zhuǎn)發(fā)機制互相轉(zhuǎn)發(fā)請求,但是用戶是感覺不到請求轉(zhuǎn)發(fā)的。通過request.getRequestDispatcher(path).forward(arg0, arg1)實現(xiàn),是一次請求,轉(zhuǎn)發(fā)后對象會保存,地址欄的url不會改變。
請求重定向
客戶端行為。一般用于避免用戶的非正常訪問。例如:用戶在沒用登錄的情況下訪問后臺資源,servlet可以將該http請求重定向到登錄頁面,讓用戶登陸后再訪問。通過調(diào)用response.sendRedirect(arg0)實現(xiàn),從本質(zhì)上講等同于兩次請求,前一次的請求對象不會保存,地址欄的url會改變。
二者的原理及區(qū)別是什么?
答:Forward和Redirect代表了兩種請求方式:請求轉(zhuǎn)發(fā)和請求重定向。對應(yīng)到代碼里,分別是RequestDispatcher類的forward()方法和HttpServletRequest類的sendRedirect()方法。
對于請求轉(zhuǎn)發(fā),客戶端瀏覽器只發(fā)出一次請求,Servlet把請求轉(zhuǎn)發(fā)給Servlet、HTML、JSP或其它信息資源,由第2個信息資源響應(yīng)該請求,兩個信息資源共享同一個request對象。
對于請求重定向,服務(wù)器端在響應(yīng)第一次請求的時候,讓瀏覽器再向另外一個URL發(fā)出請求,從而達到轉(zhuǎn)發(fā)的目的。它本質(zhì)上是兩次HTTP請求,對應(yīng)兩個request對象。
總結(jié)
以上是生活随笔為你收集整理的Java Web 请求转发与请求重定向的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA设置背景与字体大小
- 下一篇: vue项目前端服务器,【前端技术】vue