java操作cookie!!!

來源:互聯網
上載者:User

 

java對cookie的操作比較簡單,主要介紹下建立cookie和讀取cookie,以及如何設定cookie的生命週期和cookie的路徑問題。

 

建立一個無生命週期的cookie,即隨著瀏覽器的關閉即消失的cookie,代碼如下

 
1 HttpServletRequest request  
2 HttpServletResponse response
3 Cookie cookie = new
Cookie("cookiename","cookievalue");
4 response.addCookie(cookie);

 

下面建立一個有生命週期的cookie,可以設定他的生命週期

 
1 cookie = new
Cookie("cookiename","cookievalue");
2   
3 cookie.setMaxAge(3600);

單位是秒!!!!!!!

4   
5 //設定路徑,這個路徑即該工程下都可以訪問該cookie 如果不設定路徑,那麼只有設定該cookie路徑及其子路徑可以訪問
6   
7 cookie.setPath("/");
8 response.addCookie(cookie);

 

下面介紹如何讀取cookie,讀取cookie代碼如下

 
1 Cookie[] cookies = request.getCookies();//這樣便可以擷取一個cookie數組
2 for(Cookie cookie : cookies){
3     cookie.getName();// get the cookie name
4     cookie.getValue();
// get the cookie value
5 }

 

上面就是基本的讀寫cookie的操作。我們在實際中最好進行一下封裝,比如增加一個cookie,我們關注的是cookie的name,value,生命週期,所以進行封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下:

01 /**
02  * 設定cookie
03  * @param response
04  * @param name  cookie名字
05  * @param value cookie值
06  * @param maxAge cookie生命週期  以秒為單位
07  */
08 public
static
void addCookie(HttpServletResponse response,String name,String value,int
maxAge){
09     Cookie cookie =
new Cookie(name,value);
10     cookie.setPath("/");
11     if(maxAge>0)  cookie.setMaxAge(maxAge);
12     response.addCookie(cookie);
13 }

 

讀取cookie的時候,為了方便我們的操作,我們希望封裝一個函數,只要我們提供cookie的name,我們便可以擷取cookie的value,帶著這個想法,很容易想到將cookie封裝到Map裡面,於是進行下面的封裝

 
01 /**
02  * 根據名字擷取cookie
03  * @param request
04  * @param name cookie名字
05  * @return
06  */
07 public
static
Cookie getCookieByName(HttpServletRequest request,String name){
08     Map<String,Cookie> cookieMap = ReadCookieMap(request);
09     if(cookieMap.containsKey(name)){
10         Cookie cookie = (Cookie)cookieMap.get(name);
11         return
cookie;
12     }else{
13         return
null;
14     }   
15 }
16   
17   
18   
19 /**
20  * 將cookie封裝到Map裡面
21  * @param request
22  * @return
23  */
24 private
static
Map<String,Cookie> ReadCookieMap(HttpServletRequest request){  
25     Map<String,Cookie> cookieMap =
new HashMap<String,Cookie>();
26     Cookie[] cookies = request.getCookies();
27     if(null!=cookies){
28         for(Cookie cookie : cookies){
29             cookieMap.put(cookie.getName(), cookie);
30         }
31     }
32     return
cookieMap;
33 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.