request轉發與response重定向(面試題)
阿新 • • 發佈:2019-01-06
請求轉發指的就是伺服器內的資源的跳轉,請求轉發時,就會形成一個請求鏈,它們共享同一個request與response物件。也就是說,它們之間就存在一個request域。
要想實現請求轉發可以通過request物件的getRequestDispatcher方法得到一個RequestDispatcher物件,呼叫這個物件的forward方法來實現。
請求轉發是伺服器的內部跳轉,所以瀏覽器位址列上的路徑沒有改變
重定向時因為會從瀏覽器在次傳送請求,所有位址列會改變請求轉發它只有一次請求一次響應,而重定向它是兩次請求兩次響應
- 請求轉發它存在request域,資源間使用的是同一個request,而重定向它使用的是不是同一個request.
- 請求轉發它是伺服器內部跳轉,也就是說,只能跳轉到站內資源
而重定向可以跳轉任意資源 - 請求轉發的實現是靠request物件
request.getRequestDispathcher(“路徑”).forward(request,response);
而重定向
response.sendRedirect(“路徑”);
6.請求轉發時它的路徑寫法是 直接就是資源路徑,簡單說url-pattern值,也就是說在請求轉發時它的”/”其實代表的就是當前工程了。而重定向它的路徑寫法是 “/工程名”+url-pattern值,也就是說,當重定向時,我們所使用的是”/”它代表的是tomcat的根路徑.
簡單說,請求轉發與重定向它的路徑區別就在於是否多一個工程名
請求轉發 /資源路徑
重定向 /工程名/資源路徑
//請求轉發
request.getRequestDispatcher(“轉發的站內路徑”).forward(request, response);
//重定向
response.sendRedirect(“”);