Cristian Fernandes en Tecnologia e Inovação, Java Brasil, Programadores Atendente • Carrefour 4/1/2017 · 1 min de lectura · +800

Filtros - Servlets

O que é Servlet


Filtros - Servlets

Servlet é uma classe Java usada para estender as funcionalidades de um servidor. Apesar dos servlets poderem responder a quaisquer tipos de requisições, eles normalmente são usados para estender as aplicações hospedadas por servidores web, desta forma eles podem ser imaginados como Apples que rodam em servidores em vez de rodarem nos navegadores. Estes tipos de servlets são os equivalentes Java a outras tecnologias de conteúdo Web dinâmico. Em síntese,  Servlet são pequenas aplicações Java para web, exemplo de um servlet é o teclado digital quando digitamos a senha no site do banco por exemplo. Uma calculadora digital, etc.

Hierarquia de um servlet

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter();

out.println("<html>\n" +

"<head><title>Ola servlet</title></head>\n" +

"<body>\n" +

"<h1>Ola Servlet</h1>\n" +

"</body></html>");

}

}

Filtro


                                                          fonte: Caelum

Um filtro é componente que recebe o pedido (request) e a resposta (response) HTTP, podendo processa-los, altera-los, etc.
os filtros são processados em cadeia (chain), sendo que um filtro, apos seu processamento , deve invocar o outro. O filtro serve para diversas coisas, veja a lista abaixo:

  • Implementar um mecanismo de segurança
  • Comprimir o pedido de resposta
  • Redirecionar o pedido
  • Fazer Auditoria

Criando um Filtro de Auditoria

para faze-lo

crie uma interface

public class Auditoria implements Filter { }

// Vamos agora mapear nosso filtro para ser utilizado para qualquer URI de nosso sistema.

@WebFilter(urlPatterns="/*")

_________________________________________________________________________________________

@WebFilter(urlPatterns="/*")

public class Auditoria implements Filter { }

Adicione os métodos abaixo:

@Override

public void destroy() {

}

@Override

// Se existir um outro filtro nesta URI, ele será executado.

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;

System.out.println("Usuario acessando a URI " + req.getRequestURI());

chain.doFilter(request, response);

}


@Override

public void init(FilterConfig config) throws ServletException {

}

}

O conceito de um filtro é amplamente utilizado em aplicações web como uma maneira de adicionar características a parte da aplicação. Usando a API de servlets basta criar uma classe que implementa Filter e anotá-la com WebFilter. O caracter * quer dizer que vai mapear tudo, mas se eu quiser mapear uma é só especificar. Exemplo: @WebFilter(urlPatterns="/usuario") 


Cristian Fernandes 5/1/2017 · #2

#1 #1 obrigado!

0