我有以下问题:
我的一个CDI bean中的方法deleteCookie
负责删除cookie。目前我这样做:
deleteCookie() {
Map<String, Object> cookieProperties = new HashMap<>();
cookieProperties.put("maxAge", new Integer(0));
FacesContext.getCurrentInstance().getExternalContext().addResponseCookie(COOKIE_NAME, "", cookieProperties);
}
这些Cookie由ServletFilter (implementing javax.servlet.Filter)
使用,我希望他们在致电deleteCookie()
后不再在那里。
当这个方法被一个命令按钮触发时,这只能起作用,当我没有返回faces-redirect = true时。例如。 /index
有效,但/index/faces-redirect=true
不起作用。
原因是,faces-redirect=true
导致过滤器再次应用于仍具有cookie的重定向请求。只有在将响应发送给客户后,cookie才会被删除。
如何从使用重定向发送的请求中删除Cookie?
最好的祝福 Shizanu