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
<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>
[/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]