cookie 主要是用於當用戶經過HTTP訪問服務器時候,這個服務器會將一些KEY/VALUE鍵值返回給客戶端瀏覽器,而且給這個數據加上一些條件,在條件符合的時候這個用戶下次訪問服務器的時候,數據將會被帶回服務器。
java
當前cookie 有兩個版本,每一個版本的內容以下:
web
package com.yuan.test; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TestCookie { @RequestMapping(value = "/login.do") public void CheckCookie(HttpServletRequest request, HttpServletResponse response) { Cookie[] cookies = request.getCookies();//獲取到cookie 數組 String usernameString = getCookies("username", cookies); String userageString = getCookies("userage", cookies); if (null == usernameString) { response.addCookie(new Cookie("username", "oscar")); } if (null == userageString) { response.addCookie(new Cookie("userage", "28")); } response.getHeader("Set-Cookie"); } public String getCookies(String key, Cookie[] cookies) { if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(key)) { return cookie.getValue(); } } } return null; } }
根據代碼能夠看出,Cookie 是一個抽象的類,要想得到客戶端返回的Cookie必需要引入 javax.servlet 的 jar 包,spring
HttpServletRequest request
而後經過request.getcookies()方法得到cookie數組。apache
javax.servlet.http.Cookie[] cookies=request.getCookies();
說明:數組
真正構建Cookie 是在容器中, 經過Tomcat 裏面的org.apache.catlina.connector.Response類 完成的。瀏覽器
另外,注意Cookie 裏面的中文要URLEndcoder編碼。服務器
每添加一個Cookie 將會生成一個MimeHeader 對象。cookie
session 是依賴於cookie的。最終Sessionid 仍是會存在cookie裏面,因此若是cookie被用戶禁用了,可能登陸網站就會有問題。session