1. 程式人生 > >Servlet的三個域物件

Servlet的三個域物件

我們在開發javaweb專案的時候,經常會遇到jsp和Servet之間互相傳值,既然有傳值,就要有物件來傳,這裡先說Servlet的三大域物件,request,session,application他們共同的特點都是通過鍵值對傳值,這樣也很好理解,鍵是唯一的,通過鍵可以找到值。

一、request

request漢譯為請求需求,request代表的只是一次請求,當你點選一個連結,這就是依次請求,request只是一次請求有效,當你在跳轉一次的時候和上一次就不是依次請求了。記住一句話,一次請求就是一個request,只對當前請求有效。


用法:用於一次請求之間的值的傳遞,在jsp頁面設定有name屬性的表單,在Servlet通過request物件獲取屬性值,注意request是jsp內建的九個物件之一,可以直接用


常用方法:

request.setAttribute();
request.getAttribute();
request.getParameter();

注意傳值的時候總是根據鍵值對傳值

二、session

session會話,他的作用範圍只是對一次會話有效,例如打開了一個瀏覽器訪問網址,當你再開啟另一個的時候就是兩次會話了,當你關閉瀏覽器的時候本次會話就結束了,這次會話的session也就失效了,一次會話只對應一個session

用法:有時我們要在兩個Servlet之間進行傳值,用session比較方便,還有就是當用戶登入之後,伺服器記下這個session鍵值對,那麼本次會話使用者就不用二次登入了

常用方法:

session.setAttribute(); 
session.getAttribute();

在用上面的方法的時候先要獲取session物件,在jsp頁面中session屬於九大內建物件,可以直接拿來用,在Servlet中必須先要獲取session物件通過
HttpSession session = request.getSession();

在jsp頁面直接拿來
<%session.serAttribute("key",value)%>

session物件進行傳值也是通過鍵值對,鍵的值是唯一的

三、application

這個物件的範圍比較大,他是作用於整個服務端,在你啟動伺服器建立application物件設定值,之後在本專案中都可以獲取到,一個專案中只有一個物件,傳值的時候根據鍵的不同區分,application在伺服器關閉的時候銷燬,

常用方法

 application.setAttribute("key", value); 
 application.getAttribute("key"); 
注意在Servlet中也是要獲取application物件的,通過下面這句獲取
 ServletContext application = request.getServletContext();
ServletContext也是屬於JSP九大內建物件之一,故可以直接使用

參考:http://blog.csdn.net/qq_26676207/article/details/52592846