O PhaseListener é muito parecido com um Filtro, apesar de saber que o Filtro é o 1º componente a receber a requisição do cliente e também que pode ser usado sem Framework ou com outros Frameworks enquanto o PhaserListener é parte do JSF.
Ambos tem o mesmo objetivo?
Qual usar?