Как: перехватить запрос a4j с помощью javax.servlet.Filter? - PullRequest
1 голос
/ 25 августа 2010

Кто-нибудь знает, как перехватить запрос a4j, используя javax.servlet.Filter?Перехват должен произойти до вызова FacesServlet (вот почему я планирую сделать это с помощью Filter).Я хотел бы знать, какой метод будет выполняться на моем бобе, потому что мне нужно сначала выполнить динамический контроль.

Tks!

1 Ответ

0 голосов
/ 25 августа 2010

Вы хотите определить заголовки запроса для маркера запроса a4j.Я не делаю a4j, но если он делает свою работу хорошо, вы сможете определить его по заголовку X-Requested-With.

String requestedWith = request.getHeader("X-Requested-With");

Затем просто определите в блоке if,значение является ожидаемым для запросов a4j и обрабатывается соответственно.Не забывайте продолжать цепочку фильтров в случае необходимости.

if (requestedWith.equals(someAjax4jsfSpecificValue)) {
    // Do your job.
}
chain.doFilter(request, response);

Чтобы запустить его, просто сопоставьте его с <servlet-name> из FacesServlet, как это в настоящее время определено в web.xml.

<filter-mapping>
    <filter-name>yourFilter</filter-name>
    <servlet-name>facesServlet</servlet-name>
</filter-mapping>
...