1. 程式人生 > >jsp重定向與轉發的理解和區別

jsp重定向與轉發的理解和區別

回顧第一篇部落格,最近學了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,你還傻傻分不清楚嗎?