thiagocg 13 de nov. de 2009
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 13 de nov. de 2009
Andr?Sestari:
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>
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.
Andr_Sestari 13 de nov. de 2009
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 );
}