所屬接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且ServletResponse也現在只有唯一一個HttpServletResponse子接口,主要原因是,現在的J2EE的WEB程序主要以HTTP協議為主要通訊協議。
response對象的功能:
1. setHeader( String name , String value )
設置指定的HTTP文件的值,如果該值已經存在,則新值會覆蓋原有的舊值.
設置頭信息:response.setHeader("頭信息內容","頭信息參數");
常用的刷新refresh,例如:response.setHeader("refresh","1");
幾秒後跳轉:response.setHeader("refresh","2:URL=XXX");
2 重定向--response跳轉:response.sendRedirect("跳轉地址");
(重定向會丟失所有的請求參數,使用重定向的效果,與地址欄裡重新輸入新地址再按回車的效果完全一樣,即發送了第二次請求)
此語句執行後,頁面地址也變為跳轉後的地址
面試中常見問題:兩種跳轉的區別:地址欄不改變--屬於服務器端跳轉
執行到跳轉語句後無條件立刻跳轉--之後的代碼將不再執行
注意:若使用forward跳轉則一定要在跳轉前釋放掉全部資源;
使用forward時,request設置的屬性(setAttribute)依然能保留到下一個頁面
通過傳遞參數
response.sendRedirect("跳轉地址"):
地址欄改變--屬於客戶端跳轉
頁面的所有代碼執行完畢之後再跳轉
不能保存request屬性,地址欄改變了,客戶端跳轉
通過對URL地址的重寫傳遞參數
3.addCookie( Cookie cook )
添加一個Cookie對象,用來保存客戶端用戶信息.
Cookie是服務器端保存在客戶端的一組資源
通過Cookie實現保存密碼或者多長時間無需再輸入密碼等功能
設置Cookie的方法:Public Void addCookie(Cookie cookie)
Cookie是通過服務器端設置到客戶端上去的--response
如果要在服務器端取得Cookie--request
在request對象中有Public Cookie[] getCookies()方法
在使用request對象取得全部Cookie時會出現JSESSIONID,表示唯一的客戶端在服務器上的編號,這個值在客戶端第一次訪問服務器端之後設置
默認情況下Cookie只針對當前浏覽器有效,如果需要長留在計算機上,可以設置Cookie的保存時間,通過設置Cookie最大保留時間方法:setMaxAge()
1.. addHeader( String name , String value )
添加HTTP文件頭信息,該Header將傳到客戶端去,如果已經同的Header存在,則覆蓋已有的Header.
2.. containsHeader( String name )
判斷指定名字的HTTP文件頭是否已經存在,然後返回真假布爾值.
3.. sendError( int )
向客戶端發送錯誤的信息.
4.. setHeader( String name , String value )
設置指定的HTTP文件的值,如果該值已經存在,則新值會覆蓋原有的舊值.