Tomcat Valve

1 resposta
marcosslash

Olá,

Como faço para criar um valve customizado?

Estou querendo mudar o path da requisição URL antes da mesma ser escrita no log…

Por exemplo, o usuário realiza o get em

/teste/imagem.jpg

e eu quero modificar meu valve de tal maneira que ele escreva no log

/teste/imagens/imagem.jpg

Alguem tem alguma dica ???

Obrigado

t+

1 Resposta

jonataswingeter

Olá.

Porque você precisa fazer isto? Não é recomendável o uso de Valve para situações corriqueiras, mas somente críticas.
Acho que isto pode ser feito via ServletFilter mesmo.

Mas de qualquer forma…

Sobre o Valve, veja mais a documentação em:

http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html

O Valve é um componente que está acima (se tratando de importância) em todo processo de requisição HTTP.
Ele é o componente principal pelo qual todos os filtros são executados.

Basicamente, um Valve pode ser implementado da seguinte maneira:

  1. Classe valve:
package test;

import java.io.IOException;
import javax.servlet.ServletException;

import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ValveBase;

/**
 * @author Jonatas
 * 
 */
public class ValveTeste extends ValveBase {

    public String getInfo() {

        return "TesteValve";

    }

    public void invoke(Request request, Response response) throws IOException, ServletException {

        System.out.println("Acessando Valve!");
        

    }
}
  1. Inserir no server.xml:
  1. Adicionar o tomcat/server/lib/catalina.jar e tpmcat/common/lib/servlet-api.jar no seu classpath.

Att.

Criado 2 de março de 2007
Ultima resposta 3 de mar. de 2007
Respostas 1
Participantes 2