Java:有没有一种简单的方法来获取cookie名称?

时间:2015-03-11 02:38:58

标签: java cookies

我搜索了有关如何通过名称获取Cookie的解决方案,所有解决方案都指向使用for-loopsif语句。请参阅下面的代码。

for (Cookie cookie : cookies) {
    if (cookie.getName().equals("<NAME>")) {
        // do something here
    } 
    if (cookie.getName().equals("<ANOTHER_NAME>")) {
        // do something here
    } 
    // and so on...
}

是否有更简单的方法可以通过名称获取值而无需进行循环,如果是的话?

我需要对某些我想要检索的Cookie进行“某些”处理。我不想遍历每个cookie!可能有10个或更多,我只需要三个或者其他东西。

2 个答案:

答案 0 :(得分:1)

逻辑(由评论中的Matt Ball建议)将是:

// ...
Map<String, Cookie> cookieMap = new HashMap<>();
for (Cookie cookie : cookies) {
    cookieMap.put(cookie.getName(), cookie);
}

Cookie firstRequiredCookie = cookieMap.get("<NAME>");
// do something with firstRequiredCookie 
Cookie nextRequiredCookie = cookieMap.get("<ANOTHER_NAME>");
// do something with nextRequiredCookie 
// ...

答案 1 :(得分:0)

Cookie名称不是唯一的,因此使用Cookie名称作为地图键并不是理想的方法。

由于Cookie名称不是唯一的,这可能就是为什么Java API永远不会更新以提供getCookieByName()方法的原因。