3 回答

TA貢獻1936條經驗 獲得超7個贊
1、首先第一步要知道response和request一樣都是jsp內置對象,request是獲取用戶的請求,response處理用戶請求。sendRedirect()函數的作用是重定向網頁,向瀏覽器發送一個特殊的Header,然后由瀏覽器來做重定向,轉到指定的頁面。
2、接著就是sex.jsp,注意的是有一個下拉列表和提交按鈕確定,選擇“男”,就跳轉到male.jsp,選擇“女”就跳到female.jsp,然后中間通過sex_action.jsp進行重定向。
3、然后就是sponse.sendRedirect(""); 地址欄會改變,request作用域丟失。
這時候注意的是reqeust.getRequestDispatcher("").forward(request, response);轉發request作用域保存即可。
4、最后就是次請求一次響應,這時候注意的是request依然存在,但是重定向是請求兩次的,所以作用域丟失了。轉發則反之即可。這就是 response.sendRedirect(""); 的用法。

TA貢獻1816條經驗 獲得超4個贊
response.sendRedirect(""); 地址欄會改變,request作用域丟失。reqeust.getRequestDispatcher("").forward(request, response);轉發request作用域保存,地址欄不改變,另外兩者請求次數不同。request作用域存在生命周期,一次請求一次響應,request依然存在,但是重定向是請求兩次的,所以作用域丟失了。

TA貢獻1831條經驗 獲得超9個贊
response.sendRedirect(""); 不會共享request請求reqeust.getRequestDispatcher("").forward(request, response);跳轉過后的頁面會共享request請求這樣 大量數據可以不必要存儲在session中 存儲在request中 跳轉過去 的 servlet 或者 jsp取 即可
添加回答
舉報