3 回答

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

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

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