我在JBOSS 8服务器上部署了一个耳朵应用程序。前端部分是JSF应用程序。在frontend.war中,我定义了两个servlet:
MockAuthenticationServlet只是设置一个cookie(测试cookie),如下所示:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie cookie = new Cookie(COOKIE_NAME, "12345");
cookie.setPath("/");
resp.addCookie(cookie);
resp.sendRedirect("/app");
}
这是ServletFilter中从doFiter调用的方法:
private Cookie getCookie(HttpServletRequest request) {
if (request.getCookies() != null) {
for (Cookie c : request.getCookies()) {
if (c.getName().equals(COOKIE_NAME)) {
return c;
}
}
}
return (Cookie) request.getAttribute(COOKIE_NAME);
}
最后一次返回仅适用于作为属性发送的情况。该cookie应该从循环中返回。
我已经调试了MockAuthenticationServlet并且Cookie被设置了,当我打开浏览器cookie列表时我也看到了它。但是,在我的ServletFilter中,我想检查是否设置了此cookie,请求中的cookie列表为空。我错过了什么吗?谢谢你的提示。