Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Não consigo filtrar a URI

Bom eu estava utilizando o Filter na minha classe e eu queria exatamente printar uma frase com uma função que me retornasse minha URI.

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

Tentei de várias formas.Até mesmo peguei do projeto do curso Servlet (módulo 4), para verificar o que estava fazendo de errado.Pois bem eu rodei esse projeto e rodou perfeitamente, funcionou como esperado,com o print + a URI. O estranho é que estava tudo certo no meu, pois estava idêntico ao do projeto do professor do curso de Servlet e não rodava.Cheguei ate mesmo copiar todo arquivo da classe de filtro do projeto do professor, para o meu e nada.

O que eu acho que possa ser é algo interno ao projeto, pois o problema não é o servidor.

Alguém poderia me dar um help !! Obrigado !

Códigos:

  • Meu código de filtro
package br.com.alura.gerenciador.web;

import java.io.IOException;

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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

@WebFilter("/*")
public class FiltroDeAuditoria implements Filter {

    @Override
    public void destroy() {

    }

    @Override
    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 {

    }

}
  • Código do professor

*detalhe: eu não coloquei urlPatterns="/" pois é a mesma coisa de de estar assim "/" e sim, também coloquei com urlPatterns="/" para testar se ia funcionar dessa forma,mas...sem sucesso

package br.com.alura.gerenciador.web;

import java.io.IOException;

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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

@WebFilter(urlPatterns="/*")
public class FiltroDeAuditoria implements Filter {

    @Override
    public void destroy() {

    }

    @Override
    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 {

    }

}
3 respostas

boa tarde Pedro, em nenhuma url que você bateu ai ele chamou seu filtro ?

Boa tarde Guilerme. Nenhuma URL bateu,pois se tivesse batido ele entraria no :

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

e retornaria a uri pra mim

solução!

Consegui resolver o problema!!

O problema não era no código, então descobri que tive que matar o java la no Gerenciador de Tarefas e executar novamente. Deu tudo ok !