Обработка запроса на фильтрацию, а затем обработка сервлетом описана здесь:
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28959/filters.htm
Таким образом, вы в основном будете использовать сервлет для доставки контента и, возможно, для изменения запроса / ответа с помощью фильтров. Фильтры могут использоваться для реализации труб и фильтров или шаблона проектирования декоратора. (Хотя они могут также доставлять контент самостоятельно и вообще не перенаправлять делегирование на окончательную обработку сервлетом.)
Так много для обработки запросов сервлета. PhaseListeners - это концепция более высокого уровня абстракции. Они относятся не к спецификации сервлета, а к концепциям Java Server Faces, строящим поверх сервлетов. Они могут использоваться для отслеживания фаз, которые проходят компоненты JSF во время запроса, и, следовательно, являются альтернативой для фильтров, когда вы хотите повлиять на поведение / отображение компонентов JSF во время запроса.
Небольшой пример использования фазовых слушателей можно найти здесь:
http://www.softwareengineeringsolutions.com/thoughts/frameworks/JSF.Techniques-PhaseListeners.htm