No curso é dito que podemos encadear os Filtros, mas não se diz como. Como digo que um filtro vai ser executado depois do outro? O que é o FilterConfig?
No curso é dito que podemos encadear os Filtros, mas não se diz como. Como digo que um filtro vai ser executado depois do outro? O que é o FilterConfig?
Oi Sérgio, tudo bem?
Aparentemente não é possível definir a ordem dos filtros diretamente na anotação @WebFilter
. Para definir uma ordem vamos ter que recorrer ao uso do web.xml
.
O primeiro passo é por um nome nos filtros. Isso pode ser feito através do @WebFilter
@WebFilter(filterName = "filtro1")
public class FiltroDeAuditoria implements Filter {}
@WebFilter(filterName = "filtro2")
public class UmOutroFiltro implements Filter {}
E no web.xml
, eles serão executados de acordo com a ordem definida.
<filter-mapping>
<filter-name>filtro1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>filtro2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Se futuramente você estudar frameworks como o VRaptor, vai perceber que ele fornece Interceptors, e aqui você irá conseguir definir a ordem utilizando as annotations do próprio framework. http://bit.ly/1RQycVT
Um FilterConfig
, segundo a documentação, "é um objeto de configuração utilizado pelo servlet container para passar informação para um filtro durante a inicialização".
O FilterConfig
é criado pelo container, no nosso caso o Tomcat. Ele possui alguns métodos que permitem você obter algumas informações, como parâmetros de inicialização.
No seguinte link é possível obter um exemplo de utilização do FilterConfig
: http://www.javatpoint.com/filter-config.
Faz sentido? Abraço!
Oi Sérgio, essa reposta do Lucas eu marcaria como solução 10 vezes :)