Filter para .jsp

3 respostas
A

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>

3 Respostas

thiagocg

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

danilopelegrino
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;

Exemplo com JSP e Servlet + AuthFilter:

Servlet:

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");
        }
        
    }

AuthFilter:

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);
	}

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

A

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

<blockquote>	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);

}
}

Criado 13 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 3
Participantes 3