FacesContext#getCurrentInstance()在Filter#doFilter()中返回null

Pra*_*ane 10 jsf servlet-filters

里面一个

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
Run Code Online (Sandbox Code Playgroud)

我想要使​​用会话

FacesContext.getCurrentInstance().getExternalContext().getSession(false);
Run Code Online (Sandbox Code Playgroud)

但我意识到FacesContext.getCurrentInstance()回报null.我知道我可以使用会话((HttpServletRequest) req).getSession(false)代替,但我的具体问题是:为什么是faces上下文nulldoFilter()方法是什么?

我正在使用MyFaces 1.1.

kol*_*sus 13

FacesContext因为对象直接绑定到JSF请求处理生命周期,因此仅标准JSF(用户驱动)请求 - 响应过程中可用.实际对象本身存储在一个线程中,该线程在处理JSF请求期间运行,与ManagedBean相对.

但.BalusC已经概述了在这里处理生命周期之外的对象的一些步骤.:)