PhaseListener e Filter, qual a diferença? qual usar?

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?