Dúvida Servlet filter

5 respostas
A

Preciso implementar em todos os servlets da minha aplicação um método que verifica uma variável na sessão, para verificar se o usuário está logado. Qual a melhor maneira de se fazer isso sem ficar repetindo código? Utilizando filters? Alguém pode me passar um exemplo ?

obrigado,

5 Respostas

M
package com.my;

import javax.servlet.*;
import javax.servlet.http.*;

public class MyFilter implements Filter {

    public void init(FilterConfig config) { }

    public void destroy() { }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException {

        // checa se o cara ta logado
    }

}

no web.xml:

<filter>
    <filter-name>myFilter</filter-name>
    <filter-class>com.my.MyFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>myFilter</filter-name>
    <url-pattern>/</url-pattern>
</filter-mapping>
A

Obrigado pela dica, mas tem como pegar os dados da sessão com HttpSession ?

M

request.getSession() :slight_smile:

A

A classe ServletRequest não tem o método getSession()
Tem alguma forma ?

M

“amhfilho”:
A classe ServletRequest não tem o método getSession()
Tem alguma forma ?

Sorry, é HttpServletRequest q tem esse método, faça um casting.

HttpSession session = ( (HttpServletRequest) request ).getSession();
Criado 10 de junho de 2005
Ultima resposta 13 de jun. de 2005
Respostas 5
Participantes 2