3
respostas

Mensagem no Filter não é impressa no console

Na aula 7 do curso Eclipse: Produtividade Extrema, o código do material apresenta erro:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
    System.out.println("Recebendo uma requisição para " + request.getRequestURL());
    chain.doFilter(request, response);
}

Para corrigir, o Eclipse manda fazer um cast, e fica:

  System.out.println("Recebendo uma requisição para " + ((HttpServletRequest) 
request).getRequestURL());

Ainda assim o texto não é impresso no Console. Qual pode ser o problema?

3 respostas

Se o texto não está sendo impresso é pq a requisição não ta passando pelo filtro. Da uma conferida nessa configuração.

Boa noite, no meu caso o " request.getRequestURL()" não aparece na lista de sugestões e também dá um erro. "The method getRequestURL() is undefined for the type ServletRequest" Que usando o cast do colega funciona. Porém como não é o foco do curso explicar o por que utilizar esse cast, seguirei normalmente o curso.

Só pra uma informação, no vídeo ele utiliza o

request.getRemoteAddr();

e no console a saída do request é essa:

Recebendo uma requisição de 0:0:0:0:0:0:0:1

Caso utilize o

request.getRequestURL();

ele provavelmente pedirá esse cast, que foi no meu caso e no caso do colega. Que ficará assim:

((HttpServletRequest) request).getRequestURL());

Sendo que no "HttpServletRequest" ele virá como Object. E a saída no console dele seria:

Recebendo uma requisição de http://localhost:8080/nomedoprojeto/index.jsp

Como sou iniciante , não entendi o por que realmente disso acontecer, deixarei para que alguém com mais experiência explique.