我們有一個基於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