天天看點

response的頁面重定向與request的頁面跳轉的差別response的頁面重定向與request的頁面跳轉的差別

response的頁面重定向與request的頁面跳轉的差別

response:

response是伺服器對用戶端的回報,其對頁面重定向的流程是:當用戶端向伺服器發起請求時,伺服器重新給用戶端一個URL位址,讓用戶端重新發起一個新的請求,在這個過程中,用戶端第一次請求所攜帶的頭資訊将消失,在重定向之後而且位址欄顯示的是重定向的頁面,這是一種用戶端行為。

可以通過sendRedirect重定向到伺服器任何一個URL。若使用絕對路徑,其中的根路徑是伺服器根目錄,如URL="/xxx",則實際定向到http://localhost:8080/xxx。一般可使用request.getContextPath() + "/xxx"來通路webapp根目錄下的資源。 注意:通過重定向無法通路WEB-INF中的資源,因為重定向是用戶端行為,相當于浏覽器重新輸入URL,而WEB-INF中的内容無法通過輸入URL來通路。 代碼為:

response.sendRedirect("test.jsp"); 
           

request:

request是用戶端對伺服器的請求,其跳轉頁面的流程是,當用戶端向伺服器發起跳轉請求時,伺服器幫助用戶端把跳轉的頁面加載到目前頁面中來,位址欄顯示的還是跳轉之前的頁面,而跳轉之前用戶端發起請求的頭資訊還是存在的。這是一種伺服器行為。是以經過多次<jsp:forward page="">指令後,request中存儲的的屬性還是保留的。通過Forward隻能發送請求道webapp下的資源。

若使用絕對路徑,其中根路徑是相對于webapp的,URL="/xxx",則實際發送請求到http://localhost:8080/webapp/xxx。

代碼為:

request.getRequestDispatcher("test.jsp").forward(request, response);
           

或者使用标簽:

<jsp:forward page="test.jsp"/>
           

通過這兩種方法,可以完成servlet與JSP之間的通信。

繼續閱讀