學了倆三天的servlet的內部轉發和重定向,今天利用一點時間將servlet的內部轉發和從新向進行一個大概總結,因爲本人也是初學階段,若有不對,望諒解!並但願私信我及早改正,但願能幫到你們。瀏覽器
首先,先將兩者的語法背一下,無論會不會用,先記下語法是沒錯滴!!!
轉發:服務器
httpServletRequest.getRequestDispatcher("資源路徑").forward(httpServletRequest, httpServletResponse);
重定向:ide
httpServletResponse.sendRedirect("/資源路徑");
目的:
兩者都是用來實現頁面跳轉,給客戶端一個響應。spa
區別:
雖然兩者都是用來實現頁面跳轉,給客戶端一個響應。可是其中仍是有很大的差異的,這裏就和你們一塊兒探討下兩者原理及不一樣。code
1.請求原理圖以下所示:
2.能夠簡單理解轉發就比如一我的去向A這我的借錢,可是A沒有錢,因此A又跑去找B這我的借錢,而後把借來的錢再借給你了。blog
1.請求原理圖以下所示:
2.能夠簡單理解重定向就比如一我的去向A這我的借錢,可是A沒有錢,這時候A告訴你B有錢,而後你本身去跑B家去找B借錢資源
轉發 | 重定向 |
---|---|
轉發是服務器行爲(這是不通過瀏覽器的) | 重定向是客戶端行爲。(瀏覽器從新請求)。 |
轉發是瀏覽器只作了一次訪問請求 | )重定向是瀏覽器作了至少兩次的訪問請求的(固然也能夠重定向屢次)。 |
轉發瀏覽器地址不變 | 定向瀏覽器地址改變。 |
轉發兩次跳轉之間傳輸的信息不會丟失,因此能夠經過request進行數據的傳遞 | 重定向兩次跳轉之間傳輸的信息會丟失(request範圍) |
轉發只能將請求轉發給同一個WEB應用中的組件 | 重定向能夠指向任何的資源,包括當前應用程序中的其餘資源,同一個站點上的其餘應用程序中的資源,其餘站點的資源 |