1.
内置對象,顧名思義,就是在jsp中不用new的對象,jsp中自帶的,可以直接使用的
2.
jsp中有9大内置對象,分别是:
請求對象:request
輸出對象:out
響應對象:response
應用程式對象:application
會話對象:session
頁面上下文對象:pageContext
頁面對象:page
配置對象:config
異常對象:exception
(一)request
(1)request:作用域:僅限于一次請求,請求對象,存儲用戶端向服務端發送的請求資訊

(2)request對象常見方法:
string getParameter(Stringname):根據請求字段名Key,傳回字段值value
string [ ]getParameterValues(String name):根據請求字段名Key,傳回多個字段值value
void setCharacter Encoding:設定請求編碼(編碼格式“utf-8”)
getRequestDispatcher(“b.jsp”).forward(request,response):請求轉發的方式條狀頁面A->B
getServerContext(); 擷取項目的ServerContext對象
(3)頁面跳轉之——請求轉發和重定向的差別
轉發和重定向都可以實作頁面的跳轉:
轉發:request.getRequestDispatcher("url").forward(request, response)
重定向:response.sendRedirect("url")
請求轉發
重定向
(4)請求轉發與重定向的差別
1、轉發使用的是request.getRequestDispatcher()方法;重定向使用的是response.sendRedirect();
2、轉發:浏覽器URL的位址欄不變。重定向:浏覽器URL的位址欄改變;
3、轉發是伺服器内部行為,重定向是用戶端行為;
4、轉發是浏覽器隻做了一次通路請求。重定向是浏覽器做了至少兩次的通路請求;
5、轉發可以攜帶資料,資訊不會丢失;重定向不能攜帶參數,資訊會丢失(request範圍)。
6、轉發隻能在伺服器内部轉發;重定向沒有限制
(二)session(會話)
(1)session的解釋
Session:會話技術,從用戶端打開浏覽器通路伺服器,到最後用戶端關閉浏覽器,整個過程稱為一次會話。
在這個會話的過程中,伺服器會針對每個用戶端建立一個和用戶端相關的唯一的臨時容器,這個容器用于儲存目前客戶的所有資訊。
并且在給用戶端響應資料的時候,會給用戶端回送一個唯一辨別目前用戶端相關的臨時容器的id,在用戶端下次通路伺服器的時候,會攜帶這個id資訊,在伺服器端就可以找到和用戶端相關的臨時戎, 繼續使用這個臨時容器。
如果擷取這個Session對象,為每個用戶端服務:在servlet可以通過Request對象擷取和目前用戶端相關的唯一Session對象。在jsp中可以直接使用
(2)session的銷毀時間
1、一般在web伺服器中Session有預設的存活時間,一般是半小時。如果在30分鐘内,使用者一直沒有做任何操作,這時伺服器會目前這個Session自動的銷毀。
2、不正常關閉伺服器。正常關閉伺服器,伺服器會把這個Session對象使用io流中的序列化技術儲存在tomcat/work目錄下
3、在Servlet程式中手動的銷毀Session對象。session.invalidate();
Session的存活時間可以在web.xml中配置也可以通過方法指定:
setMaxInactiveInterval(int interval); //機關是秒,一般是在存儲值的時候進行設定。
(3)session和cookie之間的聯系(例子講解)
(3)cookie的介紹
Cookie技術主要需要依賴于給使用者響應資料時,給使用者的本地寫資料。
建立一個 cookie,cookie 是 servlet 發送到 Web 浏覽器的少量資訊,這些資訊由浏覽器儲存,然後發送回伺服器。cookie 的值可以唯一地辨別用戶端,是以 cookie 常用于會話管理。
Cookie技術主要解決的是在用戶端和伺服器進行互動的過程中,儲存使用者的資料,這些資料主要是通過伺服器使用Cookie對象寫到用戶端的浏覽器中。然後在浏覽器中儲存這些資料。Cookie對象可以儲存使用者和伺服器的互動資料,但是需要儲存在用戶端。
擷取cookie
需要使用HttpServletRequest對象中的getCookies方法,會得到一個Cookie數組,這是因為一個站點可能會存放多個Cookie資料
例如:Cookie[] cookies = request.getCookies();
得到Cookie數組之後,判斷cookies數組是否存在 cookies == null,如果cookies存在,根據cookie的name去查找指定cookie
3.
發送cookie
建立好Cookie對象之後,需要使用HttpServletResponse中的addCookie方法,将Cookie對象添加到響應中,然後發給用戶端。
例如:response.addCookie(cookie);
在Cookie對象中提供了getName可以擷取Cookie的key值,提供的getValue可以擷取key對應的value值,同時也可以使用setValue給目前的Cookie對象設定value值。
SetPsth設定cookie可以通路資源路徑
SetMaxAge() - 設定cookie的生存時間
(4)
session和cookie的差別
因為cookie 不是9大内置對象之一,是以使用cookie時,必須要new
一個cookie的對象
(三)application
全局變量:整個項目運作期間 都有效(切換浏覽器,仍然有效),但是關閉伺服器或者通路其他項目都不行
(四)三個對象的對比