O que é o filtro JSP?
- Os filtros são usados para filtrar a funcionalidade do aplicativo da web Java.
- Eles interceptam as solicitações do cliente antes de tentarem acessar o recurso
- Eles manipulam as respostas do servidor e as enviam ao cliente.
Tipos de filtros em JSP
- Filtros de autenticação
- Filtros de compressão de dados
- Filtros de criptografia
- Filtros de cadeia MIME
- Filtros de registro
- Filtros de tokenização
Os filtros são definidos em web.xml e são um mapa para servlet ou JSP. Quando o contêiner JSP inicia com o aplicativo da web, ele cria a instância de cada filtro que foi declarado no descritor de implementação.
A seguir estão os métodos de filtro:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Isso é chamado sempre que uma solicitação / resposta é passada de cada cliente quando é solicitada de um recurso.
-
Public void init (FilterConfig)
Isso é para indicar que o filtro é colocado em serviço
-
Público void destroy ()
Isso para indicar que o filtro foi retirado de serviço.
Exemplo:
Neste exemplo, criamos filtro e mapeamos em web.xml
Gurufilter.java
pacote demotest;import java.io.IOException;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import Javax.servlet.http.HttpServletRequest;public class GuruFilter implementa Filter {public void doFilter (solicitação ServletRequest, resposta ServletResponse, cadeia Filterchain) lança IOException, ServletException {// TODO stub do método gerado automaticamenteHttpServletRequest req = (HttpServletRequest) request;String ipAddress = req.getRemoteAddr ();System.out.println ("Endereço IP" + ipAddress + ", Hora é"+ nova data (). toString ());// passe a solicitação ao longo da cadeia de filtroschain.doFilter (solicitação, resposta);}/ *** @ver Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) throws ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Imprime o parâmetro initSystem.out.println ("Parâmetros de teste: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>teste GuruFilter GuruFilter demotest.GuruFilter guru-param Este é o parâmetro do guru GuruFilter / GuruFilter
Explicação do código:
Gurufilter.java
Linha de código 17-32 : Aqui estamos usando o método "doFilter" onde estamos obtendo o objeto de solicitação (em nosso exemplo, o objeto de solicitação é req (objeto HttpServletRequest)) e obtemos o endereço remoto do cliente e imprimindo no console e também imprimindo data e hora no console.
Linha de código 33-37 : Aqui estamos usando o método init, onde pegamos o parâmetro init e imprimimos o parâmetro init no console.
Web.xml
Linha de código 10-11 - Mapeando o GuruFilter com o nome da classe GuruFilter.java onde temos o nome do filtro como GuruFilter e a classe do filtro que é o caminho do diretório da classe GuruFilter
Linha de código 13-15 - Mapeando o parâmetro init denominado guru-param e obtendo o valor dele que é colocado sob a tag de filtro, então este init-param foi definido para gurufilter
Resultado:
Ao executar o código acima, você obtém a seguinte saída:
- A saída é o parâmetro de teste do parâmetro init
- E buscar endereço IP, data e hora.