public class CookieUtils { public static final String USERNAME_COOKIE="USERNAME_COOKIE";
public static final String CART_COOKIE="CART_COOKIE"; public static String getAttribute(String key,HttpServletRequest request){
Cookie[] cookies = request.getCookies();
if(cookies==null)return null;
try{
for(int i = 0,j = cookies.length;i<j;i++){
Cookie cookie = cookies[i];
if(cookie.getName().equals(key)){
return cookie.getValue();
}
}
}catch(Exception e){
return null;
}
return null;
} public static void setAttribute(String key,String value,int minite_age,String path,HttpServletResponse response){
if(value==null)return ;
Cookie cookie = new Cookie(key,value);
cookie.setMaxAge(minite_age);
cookie.setPath(ValidateUtils.validateNull(path)?"/":path);
response.addCookie(cookie);
}}//在action中间一个地方有Cookie
CookieUtils.setAttribute(CookieUtils.CART_COOKIE,System.currentTimeMillis()+"",2*7*DateUtils.ONE_DAY,"/",this.getResponse());
String cart_cookie=CookieUtils.getAttribute(CookieUtils.CART_COOKIE,this.getRequest());System.out.println("cart_cookie===="+cart_cookie);
//第一次运行action输出为null 按理说在Cookie set值 以后应该能马上get值 不知道为什么没有输出???
//第二次运行action输出才有值
public static final String CART_COOKIE="CART_COOKIE"; public static String getAttribute(String key,HttpServletRequest request){
Cookie[] cookies = request.getCookies();
if(cookies==null)return null;
try{
for(int i = 0,j = cookies.length;i<j;i++){
Cookie cookie = cookies[i];
if(cookie.getName().equals(key)){
return cookie.getValue();
}
}
}catch(Exception e){
return null;
}
return null;
} public static void setAttribute(String key,String value,int minite_age,String path,HttpServletResponse response){
if(value==null)return ;
Cookie cookie = new Cookie(key,value);
cookie.setMaxAge(minite_age);
cookie.setPath(ValidateUtils.validateNull(path)?"/":path);
response.addCookie(cookie);
}}//在action中间一个地方有Cookie
CookieUtils.setAttribute(CookieUtils.CART_COOKIE,System.currentTimeMillis()+"",2*7*DateUtils.ONE_DAY,"/",this.getResponse());
String cart_cookie=CookieUtils.getAttribute(CookieUtils.CART_COOKIE,this.getRequest());System.out.println("cart_cookie===="+cart_cookie);
//第一次运行action输出为null 按理说在Cookie set值 以后应该能马上get值 不知道为什么没有输出???
//第二次运行action输出才有值
解决方案 »
- 有3个 文本框 上面的标题是 名字 年龄 成绩 然后下面有3个文本框 点击添加操作 将每次添加的文本框的值 依次 显示在标题的下面 不用连接
- java怎么建立一对多的消息发放功能
- spring + MQ 的时候出的问题...
- formbean组装问题
- IE7关闭页签时不释放Java控制台
- 本人jboss下有个jar包,我在jdk1.4.2的环境下,重编译了其中一个java源文件,替换后启动应用失败
- Display Tag中文问题
- (正则表达式)判断一个全英文字符串是否以Info结尾怎么写?
- [STRUTS+JAVASCRIPT]奇怪问题,在jsp提交后JAVASCRIPT不可在使用??
- 初学JAVA,请大家介绍几本好书!
- hibernate存null和不存一样么?
- j2ee菜鸟级问题
cookie是放在response中存入客户端的没错,
不过你想读取,就得客户端在请求时,request里有cookie的信息,显然你这个request不是设置cookie后请求的页面发送出来的,所以request里就没有你想要的cookie信息.
你的流程是:
页面请求(客)->response设置cookie,request取cookie(服)->页面写入cookie(客)->...
正确的流程是:
页面请求(客)->response设置cookie(服)->页面写入cookie,页面请求(客)->request取cookie(服)->...