Dúvida Servlet Filter

3 respostas
J

Boa noite pessoal, estou implementando um Filter e estou com algumas dúvidas.

Tenho o método:

public void init(FilterConfig config) throws ServletException {

}

Dentro desse método (tem que ser dentro do init), preciso pegar a URL do servidor, eu preciso fazer exatamente o que consigo fazer no doFilter, que seria isso:

public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
 
        HttpServletRequest request = (HttpServletRequest) req;
        request.getRequestURL().toString();//AQUI, essa URL eu preciso dentro do init();
}

Existe alguma forma de fazer isso? já tentei de toda forma mais não consegui nada até o momento.

Eu quero recuperar dentro init(), pois eu inicio uma thread, e não posso fazer isso dentro do doFilter. Já é um código pronto que estou trabalhando então não posso alterar a estrutura de como o sistema é feito, sendo assim teria que ser dentro do init mesmo.

Obrigado a todos, qualquer ajuda ou dica será bem vinda.

3 Respostas

N

Seguindo a lógica do ciclo de vida de um filtro(httdp://www.javatpoint.com/life-cycle-of-a-servlet) vc não consegueria ter acesso ao objeto ServletRequest dentro do método do init.

Mas na assinataura do método init(FilterConfig filterConfig) é possível acessar um objeto do tipo FilterConfig, que tem o método getInitParamater(String param) onde vc poderia obter o valor de um parãmetro declarado no DD. Mais detalhes http://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/FilterConfig.html

J

Bom dia. Desde ja agradeco sua ajuda, sou novo no mundo da web, o que seria DD?

N

Deployment descriptor, é um arquivo chamado web.xml que fica dentro do diretório WEB-INF

Criado 19 de julho de 2013
Ultima resposta 20 de jul. de 2013
Respostas 3
Participantes 2