读书人

java读取cookie的有关问题

发布时间: 2013-09-06 10:17:17 作者: rapoo

java读取cookie的问题
首先我已经把cookie写入客户端了,以下是截图:
java读取cookie的有关问题
java读取cookie的有关问题
java读取cookie的有关问题
java读取cookie的有关问题
java读取cookie的有关问题

读取cookie的java代码:


private String getUsername(HttpServletRequest request){
Cookie[] cookies = request.getCookies();
String username = "";
if(cookies!=null){
for (int i = 0; i < cookies.length; i++)
{
Cookie c = cookies[i];
System.out.println(c.getName()+"--"+c.getValue());
if(c.getName().equalsIgnoreCase("username"))
{
username = c.getValue();
}
}
}
return username;
}



程序输出的cookie key/value如下:

JSESSIONID--3895FE881678B0085D24BC54F43BE077

q7O_visitedfid--2

uchome_loginuser--liusheng

不知道为什么拿不到username和ticket两个cookie?

cookie java


[解决办法]

/** cookie的生命周期(一周) */
public static final int COOKIE_AGE = 604800000;

/**
* 设置cookie
* @param name cookie名字
* @param value cookie值
*/
public static void addCookie(String name, String value) {
try {
Cookie cookie = new Cookie(name, URLEncoder.encode(value, CharEncoding.UTF_8));
cookie.setPath("/");
cookie.setMaxAge(COOKIE_AGE);
ResponseThreadLocal.get().addCookie(cookie);
} catch (Exception e) {
log.error("设置cookie", e);
}
}

/**
* 根据名字获取cookie
* @param name cookie名字
* @return String
*/
public static String getCookie(String name) {
try {
Map<String, Cookie> cookieMap = ReadCookieMap();
if (cookieMap.containsKey(name)) {
Cookie cookie = (Cookie) cookieMap.get(name);
return URLDecoder.decode(cookie.getValue(), CharEncoding.UTF_8);
}
} catch (Exception e) {
log.error("根据名字获取cookie", e);
}
return "";
}

// 将cookie封装到Map里面
private static Map<String, Cookie> ReadCookieMap() {
Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
Cookie[] cookies = RequestThreadLocal.get().getCookies();
if (null != cookies) {
for (Cookie cookie : cookies) {
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}

读书人网 >J2EE开发

热点推荐