FacesContext # getCurrentInstance() возвращает null в Filter # doFilter()

Внутри

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)

Я хотел получить сеанс, используя

FacesContext.getCurrentInstance().getExternalContext().getSession(false);

Но я понял, что FacesContext.getCurrentInstance() возвращает null. Я знаю, что я могу получить сеанс, используя ((HttpServletRequest) req).getSession(false) вместо этого, но мой конкретный вопрос: почему интерфейс face null в методе doFilter()?

Я использую MyFaces 1.1.

Ответ 1

FacesContext, поскольку объект привязан непосредственно к жизненному циклу обработки запросов JSF и, как результат, доступен только во время стандартного процесса запроса-ответа JSF (с помощью пользователя). Сам фактический объект хранится в потоке, который выполняется во время обработки запроса JSF по отношению к ManagedBean.

Но. BalusC изложил некоторые шаги, чтобы получить доступ к объекту за пределами жизненного цикла здесь.:)