jsp重定向與轉發的理解和區別
阿新 • • 發佈:2019-01-23
回顧第一篇部落格,最近學了jsp:java server page , java伺服器頁面技術. 在伺服器執行jsp,把html返回給瀏覽器頁面,優勢jsp可以寫java程式碼。
然而,http協議是一種無狀態的協議,瀏覽器斷開與伺服器的請求後再請求時不會有瀏覽器客戶端的資訊。通過jsp的重定向和轉發可以解決http的無狀態問題。
首先對前天晚上自己回答不出這個問題作檢討。正題:
重定向:
response.sendRedirect("地址");
a. 頁面地址顯示最終頁面
b. 不可向後傳遞引數
c. 跳到外部站點
伺服器轉發:
request.getRequestDispatcher("地址").forward(request, response);
a. 頁面地址顯示請求頁面
b. 可以向後傳遞引數
c. 不可以跳到外部站點
造成區別的原因以及對這兩者進行區別是,重定向發出兩次請求, 轉發只發一次請求。
打個簡單的比方:我去XX部門辦事,到了跟接待的說我要找XXX。如果接待的說我要找的人在XXX地點,自己去找,這就是重定向,我可以自己跳到任何位置,包括其他部門即外部站點。如果接待的人很好,說你要說什麼我給你帶話到那個人,這就是伺服器轉發,可以把我傳達的資訊一直保留,即引數可以繼續往後傳遞。
有了這個簡單的例子,媽媽再也不用擔心我又把這兩者搞混了。另外有個題外話,在學習方法上,應該把這些物件的單詞和中文意思對應上,response和request,你還傻傻分不清楚嗎?