Bom dia a todos!
Estou com um problema utilizando o objeto session.
Criei uma aplicação com 3 páginas para exemplificar o problema. A página de login na aplicação se chama “index.jsp”.
O problema:
- quando faço o login na página “index.jsp” sou remetido automaticamente para a página “listaContatos.jsp” e
- já na página “listaContatos.jsp” existe um link para a página “listaContatos2.jsp”. Quando clico neste link sou remetido a página “index.jsp” novamente, ao invés de ser remetido para a página “listaContatos2.jsp”.
Após depurar o software, descobri que da página “index.jsp” para a página “listaContatos.jsp” o objeto session ainda está com os valores que lhe foram atribuídos na página “index.jsp”.
Porém, quando tento passar da página “listaContatos.jsp” para a página “listaContatos2.jsp” o objeto session, ao chegar na página destino, está zerado, ou seja, sem valor algum. E por isto estou sendo remetido à página de login.
Não sei o porquê do objeto session estar chegando sem valor algum.
Se alguém puder ajudar, será de grande valia.
Desde já, muito obrigado!
Vamos ao código:
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
</head>
<body>
<form action="" method="post">
<fieldset title="Login">
<p>
Login <input type="text" alt="Login" name="login" maxlength="20" value="" />
</p>
<p>
Senha <input type="text" alt="Senha" name="senha" maxlength="20" value="" />
</p>
<p>
<input type="submit" value="Enviar" name="btEnviar" />
</p>
<%
if((request.getParameter("login")!=null)&&
(request.getParameter("senha")!=null))
{
String us = request.getParameter("login") +
request.getParameter("senha");
if(us.equals("aaa123"))
{
session.setAttribute("usuario", us);
session.setMaxInactiveInterval(300); // 5 minutos.
response.sendRedirect("listaContatos.jsp");
}
else {
us = null;
session.setAttribute("usuario",us);
out.println("Digite o login e a senha");
}
}
%>
</fieldset>
</form>
</body>
</html>
listaContatos.jsp
<%@page contentType="text/html" pageEncoding="ISO-8859-9"%>
<%
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma","no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Não salva cache no servidor proxy.
String usSessao =(String) request.getSession().getAttribute("usuario");
if(usSessao==null || usSessao==""){
response.sendRedirect("index.jsp");
}
%>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mostra todos os contatos</title>
</head>
<body>
<%
String usLogado = (String) session.getAttribute("usuario");
if (usLogado != null) {
%>
<fieldset style="text-align: right;">
<p>
Usuário Logado: Usuário
<a href="index.jsp" id="btnSair" onclick="<%session.invalidate();%>">Sair</a>
</p>
</fieldset>
<%
}
%>
<h1>Lista de Contatos</h1>
<p>Contato A</p>
<p>Contato B</p>
<p>Contato C</p>
<p>Contato D</p>
<p>Contato E</p>
<br />
<p><a href="listaContatos2.jsp">Lista de Contatos 2</a></p>
</body>
</html>
listaContatos2.jsp
<%@page contentType="text/html" pageEncoding="ISO-8859-9"%>
<%
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Não salva cache no servidor proxy.
String usSessao =(String) request.getSession().getAttribute("usuario");
if(usSessao==null || usSessao==""){
response.sendRedirect("index.jsp");
}
%>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mostra outros contatos</title>
</head>
<body>
<%
String usLogado = (String) session.getAttribute("usuario");
if (usLogado != null) {
%>
<fieldset style="text-align: right;">
<p>
Usuário Logado: Usuário
<a href="index.jsp" id="btnSair" onclick="<%session.invalidate();%>">Sair</a>
</p>
</fieldset>
<%
}
%>
<h1>Lista de Contatos 2</h1>
<p>Contato F</p>
<p>Contato G</p>
<p>Contato H</p>
<p>Contato I</p>
<p>Contato J</p>
<br />
<p><a href="listaContatos.jsp">Lista de Contatos</a></p>
</body>
</html>
Edwar Saliba Júnior