天天看點

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

1.

内置對象,顧名思義,就是在jsp中不用new的對象,jsp中自帶的,可以直接使用的

2.

jsp中有9大内置對象,分别是:

請求對象:request

輸出對象:out

響應對象:response

應用程式對象:application

會話對象:session

頁面上下文對象:pageContext

頁面對象:page

配置對象:config

異常對象:exception

(一)request

(1)request:作用域:僅限于一次請求,請求對象,存儲用戶端向服務端發送的請求資訊

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

(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")

請求轉發

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

重定向

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

(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之間的聯系(例子講解)

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象
jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象
jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

(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的對象

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

(三)application

全局變量:整個項目運作期間 都有效(切換浏覽器,仍然有效),但是關閉伺服器或者通路其他項目都不行

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

(四)三個對象的對比

jsp的9大内置對象詳解一:内置對象相關解釋以及種類二:詳解其中幾個重要的事内置對象注意:cookie不是9大内置對象

繼續閱讀