我有一个使用JSF 1.1版的遗留应用程序
我正在尝试在所有响应中设置cookie,但由于特定要求,通过PhaseListener实现而不是通常的Filter。
我做了一些类似的事情:
public class MyPhaseListener implements PhaseListener {
public PhaseId getPhaseId() {
return PhaseId.ANY_PHASE;
}
public void beforePhase(PhaseEvent event) {
}
public void afterPhase(PhaseEvent event) {
if (event.getPhaseId() == PhaseId.RENDER_RESPONSE) {
HttpServletResponse httpResponse = (HttpServletResponse) FacesContext
.getCurrentInstance().getExternalContext().getResponse();
int cookieValue = 100;
Cookie cookie = new Cookie("myCookie", "" + cookieValue);
cookie.setPath("/");
httpResponse.addCookie(cookie);
}
}
}但是,当我在chrome dev控制台中检查响应时,我没有看到这个cookie。
我做错了什么?
发布于 2019-02-04 06:55:44
在RENDER_RESPONSE之后可能为时已晚,在RENDER_RESPONSE之前应该可以正常工作。
https://stackoverflow.com/questions/54500560
复制相似问题