📄 cookieoperate.java
字号:
//Source file: D:\\tarena\\global\\CookieOperate.java
package tarena.global;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import tarena.dao.pages.ShopcartDAO;
import tarena.entity.Shopcart;
public class CookieOperate {
/**
* 在Cookie中存放的商品信息格式如下:
* pid,cid,amt|pid,cid,amt|...|pid,cid,amt
* 其中:
* pid 商品id
* cid 颜色id
* amt 商品数量
*/
//购物车中商品的分隔符
public final static String PRODUCT_SEPRATOR = "|";
//商品属性的分隔符
public final static String ATTRBUTE_SEPRATOR = ",";
/**
*
* @roseuid 490AA60300AB
*/
public CookieOperate() {
}
/**
* 查找cookie
* @param name - cookie名称
* @param cookies - 客户端cookie
* @return tarena.global.CookieOperate
* @roseuid 490AA61F0251
*/
public static Cookie FindCookie(String name, Cookie[] cookies) {
if(cookies!=null){
for(Cookie cookie:cookies){
if(cookie.getName().equals(name)){
return cookie;
}
}
}
return null;
}
/**
* 删除cookie
* @param cookie - 删除某个cookie
* @param response - response
* @roseuid 490AA6260232
*/
public static void DeleteCookie(Cookie cookie, HttpServletResponse response) {
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
}
/**
* @param cookie - cookie
* @param response - response
* @roseuid 490AA62C02EE
*/
public static void SaveCookie(Cookie cookie, HttpServletResponse response) {
//System.out.println("CookieOperator:saveCookie "+cookie.getValue());
cookie.setPath("/");
response.addCookie(cookie);
}
/**
* 解析cookie字符串,获取购物车对象
* @param cookie
* @return
*/
public static List<Shopcart> getGoodsFromCookie(String cookie){
List<Shopcart> goods = Collections.synchronizedList(new LinkedList<Shopcart>());
if(cookie==null||cookie.equals("")) return goods;
try {
cookie = URLDecoder.decode(cookie, "UTF-8");
} catch (UnsupportedEncodingException e) {
return goods;
}
StringTokenizer st = new StringTokenizer(cookie,PRODUCT_SEPRATOR);
while(st.hasMoreTokens()){
String next = st.nextToken();
Shopcart cart = ShopcartDAO.getShopcartFromString(next);
if(cart!=null){
goods.add(cart);
}
}
return goods;
}
/**
* 将购物车对象生成指定格式的字符串对象
* @param goods
* @return
*/
public static String toCookieString(List<Shopcart> goods){
StringBuffer cookie = new StringBuffer();
for(Shopcart cart:goods){
cookie.append(cart.toString());
cookie.append("|");
}
return cookie.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -