Request物件和Response session
request.getContextPath()到底獲取的誰的絕對路徑?什麼叫絕對路徑?在硬盤裡存在的嗎? 假設有一個專案名為:report_emp request.getContextPath()獲得的是當前的專案名 /report_emp, 要想獲得專案實際在磁碟中存貯路徑可以使用request.getSession().getServletContext().getRealPath("/"); 本地資源管理器而言: 絕對路徑:是從碟符開始的路徑,磁碟上真正的路徑的,例如:E:\幫助文件\Jquery\jqAPI; 相對路徑:是從當前路徑開始的路徑,如當前路徑為E:\幫助文件,則Jquery\jqAPI為相對路徑; 就web站點而言: 假如我們在report_emp的admin/login.jsp中訪問了report_emp/admin/images/logo.gif的圖片 絕對路徑:以Web 站點根目錄為參考基礎的目錄路徑; 在login.jsp中的src則為report_emp/admin/images/logo.gif 相對路徑:以引用檔案之網頁所在位置為參考基礎,而建立出的目錄路徑; 在login.jsp中的src則為./images/logo.gif
區別:
request:
1、request.getParameter("key")接受的是來自客戶登陸端的資料,接受的是post或get方式傳送的value。
2、請求的預設字符集是ISO-8859-1,不支援中文,需要new String (request.getParameter(key).getbyte("ISO-8859-1"),"UTF-8")進行轉碼。
3、可以給請求物件新增資料但是必須通過forward進行轉發。
4、request.setAttribute(key,object)--傳送物件,request.getAttribute(key,object)--接受物件。
5、接收cookie Cookie[] ck = request.getCookies();獲取值--遍歷for(Cookie cks:ck){out.print(URLDecoder.decode("編碼後的字串"))}。
response:
1、傳送cookie--新增cookie物件:Cookie ck=new Cookie("key","value");addCookie(Cookie物件)
2、跳轉頁面--sendRedirect("跳轉地址")--直接跳轉。
3、setHeader("refresh","秒數;URL=跳轉地址")--定時跳轉頁面。
4、setHeader("refresh","秒數")--定時重新整理頁面。
5、沒有設定屬性值的方法。沒有setAttribute的方法。
6、setheader("cache-control","no-cache")--禁止瀏覽器快取
session:
1、setAttribute("key",object)--設定屬性值。getAttribute("key")--獲取屬性值--返回Object型別需要將獲取到的值用toString()方法。
2、session.invalidate()--銷燬session--一般退出登入時用。
3、setMaxInactiveInterval(秒數)--設定超時秒數。