【发布时间】:2013-11-15 15:04:33
【问题描述】:
我们有一个基于 portlet 的应用程序,它检索某个 cookie 进行验证,然后发送一个操作请求。
但是,我们看到 HttpServletRequest 返回一个空的 cookie 列表的问题 - 即使我可以 100% 确认存在 cookie。事实上,有时代码确实可以工作并显示 cookie(尽管这种情况很少见)。
我们注意到 IE 似乎比 FF 和 Chrome 更频繁地工作,但同样,没有一致性或模式来确定是什么导致它运行。
总是获得请求 - 这里从来没有空指针的问题。目前唯一的问题是cookie列表是空的。
静态类中返回 HttpServletRequest 的方法
FacesContext context = FacesContext.getCurrentInstance();
Map<String, Object> requests = context.getExternalContext().getRequestMap();
for (String requestName : requests.keySet()) {
if (requests.get(requestName) instanceof HttpServletRequest) {
return ((HttpServletRequest) requests.get(requestName));
}
}
return null;
从其他类调用上面的静态方法:
Cookie[] cookies = StaticClass.getHttpRequest().getCookies();
System.out.println("Cookies = " + cookies);
【问题讨论】:
-
暂时忘掉java代码,开始检查HTTP流量。为什么最终用户浏览器不发送 cookie?你是如何设置它们的?
-
当你有这个时,也可以在问题中添加相关信息。