java 中cookie的詳解及復雜實例。本站提示廣大學習愛好者:(java 中cookie的詳解及復雜實例)文章只能為提供參考,不一定能成為您想要的結果。以下是java 中cookie的詳解及復雜實例正文
java 中cookie的詳解
Java對cookie的操作比擬復雜,次要引見下樹立cookie和讀取cookie,以及如何設定cookie的生命周期和cookie的途徑問題。
樹立一個無生命周期的cookie,即隨著閱讀器的封閉即消逝的cookie,代碼如下
HttpServletRequest
request
HttpServletResponse
response
Cookie
cookie = new Cookie("cookiename","cookievalue");
response.addCookie(cookie);
上面樹立一個有生命周期的cookie,可以設置他的生命周期
cookie
= new Cookie("cookiename","cookievalue");
cookie.setMaxAge(3600);
//設置途徑,這個途徑即該工程下都可以訪問該cookie
假如不設置途徑,那麼只要設置該cookie途徑及其子途徑可以訪問
cookie.setPath("/");
response.addCookie(cookie);
上面引見如何讀取cookie,讀取cookie代碼如下
Cookie[]
cookies = request.getCookies();//這樣便可以獲取一個cookie數組
for(Cookie
cookie : cookies){
cookie.getName();//
get the cookie name
cookie.getValue();
//
get the cookie value
}
下面就是根本的讀寫cookie的操作。我們在實踐中最好停止一下封裝,比方添加一個cookie,我們關注的是cookie的name,value,生命周期,所以停止封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下
/**
*
設置cookie
*
@param response
*
@param name cookie名字
*
@param value cookie值
*
@param maxAge cookie生命周期 以秒為單位
*/
public static void addCookie(HttpServletResponse
response,String name,String value,int maxAge){
Cookie
cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0)
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
讀取cookie的時分,為了方便我們的操作,我們希望封裝一個函數,只需我們提供cookie的name,我們便可以獲取cookie的value,帶著這個想法,很容易想到將cookie封裝到Map外面,於是停止上面的封裝
/**
*
依據名字獲取cookie
*
@param request
*
@param name cookie名字
*
@return
*/
public static Cookie
getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie>
cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie
cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}
/**
*
將cookie封裝到Map外面
*
@param request
*
@return
*/
private static Map<String,Cookie>
ReadCookieMap(HttpServletRequest request){
Map<String,Cookie>
cookieMap = new HashMap<String,Cookie>();
Cookie[]
cookies = request.getCookies();
if(null!=cookies){
for(Cookie
cookie : cookies){
cookieMap.put(cookie.getName(),
cookie);
}
}
return cookieMap;
}
感激閱讀,希望能協助到大家,謝謝大家對本站的支持!