项目中用到cookie,遇到在tomcat下可以取到cookie值,但是在resin服务器下取不到cookie的问题,解决:
添加cookie,保存value的值时,需要URLEncoder.encode一下:
CookieGenerator cg = new CookieGenerator();
cg.setCookieMaxAge(1 * 24 * 60 * 60);
cg.setCookieName(cookieName);
cg.addCookie(response, URLEncoder.encode(cookieValue, "UTF-8"));
取cookie,时需要URLDecoder.decode一下:
Cookie cookie = WebUtils.getCookie(request, cookieName);
String cookieValue = null != cookie ? cookie.getValue() : "";
cookieValue = URLDecoder.decode(cookieValue, "UTF-8");
注意:
如果不这样,无法读取到cookie里面的值,同时也解决了cookie存取中文乱码的问题。