我在使用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浏览器开发控制台的回应,我没有看到这个cookie。
我究竟做错了什么?
后RENDER_RESPONSE可能是晚了,RENDER_RESPONSE之前应该能正常运行。