Olá desenvolvedores, no tutorial “WEB FILTER: CORRIGINDO PROBLEMAS”, que você pode acessar aqui trabalhamos com o Web Filter ou @WebFilter que é a anotação usada para declarar um filtro de servlet. Vimos um pouco do que é e de como usar o Filter. E no tutorial “JDBC & FILTER: CONEXÃO E IMPLEMENTAÇÃO”, implementamos uma classe Filter e a referenciamos no web.xml. Mas por que usar o Filter?
CONCEITO DE FILTER
Vimos que o Filter é uma “anotação que é processada pelo contêiner no momento da implantação e o filtro correspondente aplicado aos padrões de URL, servlets e tipos de expedidor especificados”.
Essa é a explicação que consta na documentação da Oracle. E talvez ela pareça um pouco abstrata. Talvez se entendermos o contexto de sua utilização fique mais claro o porquê de a utilizarmos. O Filter é muito utilizado em aplicações comerciais, nesse sentido a anotação @WebFilter é usada para declarar um filtro em uma aplicação Web.
A anotação @WebFilter é como definimos um Servlet Filters, que é comumente utilizado na implementação de operações, que acontecem antes da conclusão do fluxo de navegação pelo usuário. Nesse sentindo, o filtro é mais comumente utilizado em implementação de autenticação. Atuando como um interceptador de fluxo de navegação, podemos por exemplo, evitar que o usuário consiga acessar o conteúdo de um sistema se a autenticação falhar.
ONDE USAR
Entenda, de um lado temos o Front-end, uma tela de cadastro por exemplo, e do outro o servidor com todas as classes do sistema, o servlet, conexão com banco e tudo mais que for pertinente ao back-end. E entre os dois temos o filter. Assim, qualquer requisição será interceptada pelo filter, seja esta requisição para estabelecer uma conexão, ou uma validação de usuário. A questão importante aqui é que somente depois que a requisição passar pelas restrições ou regras do filter, é que o fluxo do sistema continuará e o servidor poderá então proceder com os devidos processamento.
E a resposta, precisa passar pelo filter? Não, o retorno é direto, uma vez que a requisição já havia sido validada, satisfazendo as todas as condições.
Desse modo, usando o filter podemos impedir que o usuário tenha acesso a dado conteúdo se uma dada condição não for aceita. Contudo, as tarefas pertinentes aos filtros não se restringem a sistemas de login. Os filtros podem ser aplicados para todas as URLs, para parâmetros de inicialização, para especificar informações adicionais, compressão de dados, encriptação, entre outras funcionalidades.
EM POUCAS PALAVRAS
Repetimos aqui um pouco do que já foi falado sobre o filter, e tentamos estabelecer uma nova abordagem. Espero que nenhuma dúvida tenha ficado e que você tenha compreendido os motivos de o utilizarmos e a importância dele em nossos projetos.
No caso do nosso exemplo ele foi usado para impor restrições de acesso ao sistema, atuando na validação de acesso. Filtrando quem tem todos os requisitos para acessar o sistema e desse modo barrando que não tem as credenciais de acesso.
Eu fico por aqui e nós nos vemos no próximo tutorial onde continuaremos colocando a mão na massa. E se você não é aluno do curso de Formação Java Web, não perde tempo, e venha logo se juntar a nossa comunidade.