key words: cookie 保留歷史記錄 登陸記錄
很多時候用session覺得挺方便的,今天突然發現自己竟然幾乎沒用過cookie,呵呵,有點意思。正好碰到一個登陸頁面,需要用戶選擇站點類型,覺得每次都讓用戶選擇有點不合理,畢竟一個用戶常用的就一個,所以決定用cookie記錄下這個站點,下次登陸的時候可以直接顯示.
效果如下:

?/**
?????*?從cookie里讀取指定Name?對應的值
?????*?如果沒有返回空?null
?????*?@param?cookieName
?????*?@param?request
???? * @param decode :編碼
?????*?@return??String
?????*/
????public?static?String?getCookieValue(String?cookieName,?HttpServletRequest?request,String?decode)?{
????????if(null?==?cookieName?||?cookieName.trim().length()?==0)?return?"";
????????Cookie?cookies[]?=?request.getCookies();
????????Cookie?sCookie?=?null;
????????String?sname?=?null;
????????String?svalue?=?null;
????????if?(null?!=?cookies?&&?cookies.length?>?0)?{
????????????for?(int?i?=?0;?i?<?cookies.length;?i++)?{
????????????????sCookie?=?cookies[i];
????????????????sname?=?sCookie.getName();
????????????????if?(cookieName.equals(sname))?{
????????????????????try?{
????????????????????????svalue?=?java.net.URLDecoder.decode(sCookie.getValue(),decode);
????????????????????}?catch?(UnsupportedEncodingException?e)?{
????????????????????????e.printStackTrace();??
????????????????????}
????????????????????break;
????????????????}
????????????}
????????}
????????return?svalue?;
????}
????/**
?????*?設置cookie
?????*?@param?cookieName
?????*?@param?cookieValue
?????*?@param?maxAge
?????*?@param?response
???? * @paramencode :編碼
?????*/
????public?static?void?setCookieValue(String?cookieName,String?cookieValue,
int?maxAge,HttpServletResponse?response,String?encode)?{
????????if(null?==?cookieName?||?cookieName.trim().length()?==0)?return?;
????????Cookie?cookie?=?null;
????????try?{
????????????cookie?=?new?Cookie(cookieName,?java.net.URLEncoder.encode(cookieValue,encode));
????????}?catch?(UnsupportedEncodingException?e)?{
????????????e.printStackTrace();
????????}
????????cookie.setMaxAge(maxAge);
????????response.addCookie(cookie);
????}