我们有一个基于portlet的应用程序,它检索某个cookie进行验证,然后发送一个操作请求。HttpServletRequest不返回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?你如何设置它们? – eis
当你有这个问题时,也可以在问题中添加相关信息。 – eis