"sendRedirect" não está direcionando para URL

4 respostas
Luiz_Henrique_Coura

olá pessoal!!

estou usando response.sendRedirect( “/minhaAplicacao/index.jsp” ) quando o sistema reconhece que a sessão expirou.

o teste da sessão é simples:

if( session.getAttribute( “logon” ) == null ) {

session.setAttribute( "logon", "ok" );

response.sendRedirect( "/minhaAplicacao/index.jsp" );

}

ou seja, o usuário entra no sistema, sem a necessidade de logar-se, e o sistema verifica se existe na sessão do usuário um atributo “logon”. se esse atributo não existir, o sistema cria esse atributo na sessão corrente e manda o usuário para a página principal.

até aqui tudo bem, porém se a sessão do usuário expira, o sistema não reinicia. ele tenta permanecer na mesma pagina com uma nova sessão. simplesmente não direciona o sistema para a página principal.

ex:

www.servidor:8080/minhaAplicacao/teste.jsp?nome=Luiz&idade=20

encerra sessão, o sistema vê q o atributo “logon” não existe, então cria o atributo na nova sessão e tenta direcionar a aplicação para o inicio, porem continua em…

www.servidor:8080/minhaAplicacao/teste.jsp?nome=Luiz&idade=20

ao inves de…

www.servidor:8080/minhaAplicacao/index.jsp

eu fiz um teste no valor do atributo da sessão “logon”, e está correto…
sem sessão logon=null… com sessão logon=ok

no que estou errando?

4 Respostas

Luiz_Henrique_Coura

esses endereços são fictícios.

falows!!

G

Luiz

Mesmo supondo que os end. são fictícios, se o seu index.jsp estiver no mesmo diretório do test.jsp, não é necessário setar o [color=“red”]response.sendRedirect("/minhaAplicacao/index.jsp")[/color] desta forma.

Tente fazer assim:

response.sendRedirect("index.jsp")

Vou tentar fazer alguns teste, mas aguardo sua resposta.

Luiz_Henrique_Coura

eu fiz o que vc falou, mas mesmo assim não funcionou.
o engraçado é que tenho um jsp logout.jsp que faz o trabalho de finalizar a sessão e reniciar a aplicação, e que funciona normalmente. porém eu faço isso manualmente para que eu possa fazer outros testes na minha aplicação.

fiz um outro teste:

codigo é um JavaBean. estou instanciando ele assim:

<jsp:useBean id="codigo" scope="session" class="modelChart.bean.selects.Codigo" />

assim que entra em uma nova página, diferente de index.jsp, eu faço o seguinte teste.

if( codigo.getCodigo() == null ){
    response.sendRedirect( "index.jsp" );
}

vamos supor o seguinte:

entrei no sistema. logo no início, eu seto um codigo para o objeto
codigo, por exemplo 12345.

codigo.setCodigo( (String)request.getParameter( "novoCodigo" ) );

agora estou navegando na página variaveis.jsp e toda vez que atualizo meu formulário, pergunto se o valor de codigo é vazio, com:

if( codigo.getCodigo() == null ){
    response.sendRedirect( "index.jsp" );
}

ou seja, se for vazio é pq a sessão do usuário finalizou, correto? e assim q ele tentou agir na página novamente, atraves do formulário, ele verificou q o objeto codigo não é mais o mesmo, por isso ele pega um valor null, pois ainda não foi passado nenhum parametro para ele. então ele deveria retornar a página index.jsp, é qd eu utilizo o response.sendRedirect( “index.jsp” ); para fazer isso pra mim. porém ele continua na mesma página. não muda.

eu utilizo JavaBeans na minha aplicação e mantenho eles na sessão.

não sei se estou fazendo o certo. sou novato na área e já estou tendo um problema “muito louco” para resolver.

agradeço a ajuda.

[/code]

Luiz_Henrique_Coura

eita!!

esqueci de habilitar as funções BBCode

Criado 20 de julho de 2004
Ultima resposta 22 de jul. de 2004
Respostas 4
Participantes 2