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 ?
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();