public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
我想使用
获取会话FacesContext.getCurrentInstance().getExternalContext().getSession(false);
但是我意识到FacesContext.getCurrentInstance()
返回null
。我知道我可以使用((HttpServletRequest) req).getSession(false)
来获得会话,但我的具体问题是:为什么是doFilter()
方法中的faces上下文null
?
我用的是MyFaces 1.1
FacesContext
作为对象直接绑定到JSF请求处理生命周期,因此仅在标准JSF(用户驱动的)请求-响应过程中可用。实际对象本身存储在一个线程中,该线程在处理JSF请求期间运行,相对于ManagedBean。
。BalusC概述了在处理生命周期之外获取对象的一些步骤。:)