Filter para .jsp

fiz um filtro para verificar se o usuario esta logado mas ele só funciona com servlet

web.xml

<filter> <filter-name>filtro_secao</filter-name> <filter-class>classes.filtro</filter-class> </filter> <filter-mapping> <filter-name>filtro_secao</filter-name> <servlet-name>/*</servlet-name> </filter-mapping>

muda seu mapeamento do filtro para:

<filter>
   <filter-name>filtro_secao</filter-name>
   <filter-class>classes.filtro</filter-class>
</filter>
<filter-mapping>
   <filter-name>filtro_secao</filter-name>
   <url-pattern>*.jsp</url-pattern>
</filter-mapping>

Repare que adicionei ao filter-mapping a linha *.jsp isso diz ao seu filtro para filtrar td q terminar com .jsp.

Espero ter ajudado!
[]'s

[quote=Andr?Sestari]fiz um filtro para verificar se o usuario esta logado mas ele só funciona com servlet

web.xml

&lt;filter&gt; &lt;filter-name&gt;filtro_secao&lt;/filter-name&gt; &lt;filter-class&gt;classes.filtro&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;filtro_secao&lt;/filter-name&gt; &lt;servlet-name&gt;/*&lt;/servlet-name&gt; &lt;/filter-mapping&gt;

[/quote]

Exemplo com JSP e Servlet + AuthFilter:

Servlet:

[code]protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
response.setContentType(“text/html;charset=UTF-8”);

    Users user = new Users();
    UserControl ctl = new UserControl();

    user.setLogin(request.getParameter("user"));
    user.setPassWord(request.getParameter("password"));

    if(ctl.verifUser(user)) {
        request.getSession().setAttribute("isLogged", new Boolean(true));
        response.sendRedirect("principal.jsp");
    } else {
        response.sendRedirect("errorLogin.jsp");
    }
    
} 

[/code]

AuthFilter:

[code] public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
Object logged = req.getSession().getAttribute(“isLogged”);
String url = req.getRequestURL().toString();

    if(logged == null && !url.contains("errorLogin.jsp") && !url.contains("index.jsp") && !url.contains("VerifUserServlet") && !url.contains("images")) {
        res.sendRedirect("index.jsp");
        return;
    }
    
    chain.doFilter(request, response);
}

[/code]

obs: Este exemplo mostra como manter um user logado até que a sessao expire. Basta você adaptar a logica de controle de acesso.

nenhum deu certo, eu tenho algumas paginas em .jsp e gostaria q algumas passasem pelo filtro para verificar se o usuario esta logado ou nao…com serlvet funciona td certinho mais com jsp nem passa pelo filtro porque eu coloquei um System.out.print e ele nem aparece quando eh jsp

meu filtro

[quote] public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession sesao = req.getSession();
System.out.println(“filtro”);
if (sesao.getAttribute(“logado”) == null) {
resp.sendRedirect(“formulario-login.jsp”);
} else {
chain.doFilter(request, response);
}

}

[/quote]