Verificar sessão expirada em qualquer JSP

8 respostas
I

Bom dia Pessoal,

Tenho uma jsp de login com validação de usuário etc, estou tentando implementar uma forma que quando o usuário depois que logado acessar uma jsp e sua sessão tiver expirada ele sera redirecionado para a pagina de login. Como posso fazer esta verificação em todas as paginas jsp de forma simples?

Vlw!

8 Respostas

thimor

Se nao estou enganado, vc tem que colocar isso no web.xml. e em todas as jsp pode pode colocar na diretiva @page o atributo errorpage=“pagina.jsp”

I

Amigo thimor,
Seria assim <%@ page sessionUsuario errorPage=“login.jsp” %>?

Mas desta forma esta dando error:
Nome de atributo indefinido

thimor

<%@page errorPage=“login.jsp” %>

isso faz sempre que der um erro direcionar para uma pagina de erro
vc vai fazer uma pagina de erro

erro.jsp e nela vai colocar
<%@page isErrorPage=“true” %>

em relacao a sessao expirada vc coloca no web.xml mas eu nao lembro agora como é.

wbdsjunior

http://www.guj.com.br/posts/list/109394.java

thiagocg

Olá Igor Franco, ia responder exatamente o que o amigo wbdsjunior indicou no link.
A maneira mais segura e elegante de se fazer isso com certeza é a utilização de um filtro.

[]'s

I

Amigos,

Implementei esta classe de filtro, mas não funcionou. Adicionei esta classe no meu pacote de util e fiz tudo oque manda o no link http://www.guj.com.br/posts/list/109394.java.

Quando a sessão expira ele nao redireciona para a pagina de erro. O que posso fazer?

Vlw.

wbdsjunior

coloque o código do filtro que você criou.

I

Amigo,

Seguem os códigos utilizados abaixo, eles são iguais ao do post já informado. Tenho uma classe especifica para validação do login e nela é que crio a sessao do usuário. O que pode ser?

package br.com.sge.util;   
  
import java.io.IOException;   
import javax.servlet.*;   
import javax.servlet.http.*;   
  
public class SessionFilter implements Filter {   
    public void init(FilterConfig config) {   
    }   
  
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {   
        HttpServletRequest httpRequest = (HttpServletRequest)request;   
  
        try {   
            if (!httpRequest.isRequestedSessionIdValid()) {   
                HttpServletResponse httpResponse = (HttpServletResponse)response;   
                httpResponse.sendRedirect(httpRequest.getContextPath() + "/login.jsp");   
            } else {   
                chain.doFilter(request, response);   
            }   
        } catch (Exception e) {   
            HttpServletResponse httpResponse = (HttpServletResponse)response;   
            httpResponse.sendRedirect(httpRequest.getContextPath() + "/erro.jsp");   
        }   
    }   
  
    public void destroy() {   
    }   
}

No web.xml da aplicação:

<filter>   
    <filter-name>sessionFilter</filter-name>   
    <filter-class>br.com.sge.util.SessionFilter</filter-class>   
</filter>  
<filter-mapping>   
    <filter-name>sessionFilter</filter-name>   
    <url-pattern>/cliente/*</url-pattern>   
</filter-mapping>

Vlw!

Criado 21 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 8
Participantes 4