Dúvida Servlet filter

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,

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>

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

request.getSession() :slight_smile:

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

[quote=“amhfilho”]A classe ServletRequest não tem o método getSession()
Tem alguma forma ?[/quote]

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

HttpSession session = ( (HttpServletRequest) request ).getSession();