首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java读取cookie的有关问题

2013-09-06 
java读取cookie的问题首先我已经把cookie写入客户端了,以下是截图:读取cookie的java代码:private String g

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;
}

热点排行