Como criar sessao e destruir a mesma

1 resposta
P

Quando eu efetuo o login na página login.jsp, passando usuário e senha válidos para uma segunda página (menu.jsp), a página menu.jsp cria uma sessão válida. Quando eu volto a tela de login e entro com um usuário válido ela cria uma nova sessão (normalmente) pegando o nome e código do cliente.

Quando eu efetuo o login na página login.jsp, passando usuário ou senha inválidos a página também cria uma sessão mas com os campos nulos e quando eu volto a tela de login e tento entrar com um usuário válido ela continua nula e eu sou obrigado a reiniciar o tomcat para matar aquela sessão.

Será que eu realmente estou criando uma sessão?

Como resolver??? Como destruir a sessão quando o usuário for inválido???

Eu tentei o método session.eliminate() mas não funcionou.

Menu.jsp

<%@ page import=beans.exemplos.<em>" %>

<%@ page import="java.sql.</em>” %>

<%@ page session=true%>

<%@ page errorPage=erro.jsp %>
<jsp:useBean id=“sessao” class=“beans.exemplos.Sessao” scope=“session”>

<jsp:setProperty name=“sessao” property="*"/>

</jsp:useBean>
<jsp:useBean id=“func” class=“beans.exemplos.Funcionario”>

<jsp:setProperty name=“func” property="*"/>

</jsp:useBean>
<jsp:useBean id=“conect” class=“beans.exemplos.Conexao”>

<jsp:setProperty name=“conect” property="*"/>

</jsp:useBean>
<jsp:useBean id=“tel” class=“beans.exemplos.Telas”>

<jsp:setProperty name=“tel” property="*"/>

</jsp:useBean>
<%!

String nometela = null;

Connection conexao = null;

PreparedStatement sql = null;

ResultSet resultado = null;

String id = null;

String senha = null;

String func_nome = null;

String imp_erro = null;

int codfunc = 0;

int codnivel = 0;

boolean erro = false;

%>

<%

nometela = menu.jsp;

conexao = conect.conectar();

id = func.getId();

senha = func.getSenha();
if (id != null &amp; senha != null) {
		sql = conexao.prepareStatement("SELECT * FROM funcionarios where id = '" + id + "' and senha = '" + senha + "'" );
		resultado = sql.executeQuery();
		if (resultado.next()) {
			func_nome = resultado.getString("func_nome");
			codfunc = resultado.getInt("codfunc");
			sessao.setCodfunc(codfunc);
			sessao.setFunc_nome(func_nome);
	    }else{
			sessao.setCodfunc(0);
			sessao.setFunc_nome("");
			erro = true;
		}
	} else {
		sessao.setCodfunc(0);
		sessao.setFunc_nome("");
		erro = true;
	}

%>
<html>
<head>
<title>WORKFLOW ENGINE SYSTEM</title>
</head>

<div align="center"> <% if (erro){ %> <% session.invalidate(); %> <%= imp_erro%> <p>Voltar a página de login</p> <% } else {%> Bem vindo ao menu: <%= func_nome %> <p>Cadastro de Funcionário</p> <p>Cadastro de Papeis</p> <p>Cadastro de Ferramenta</p> <p>Cadastro de Projeto</p> <p>Cadastro de Turno</p> <p>Cadastro de Telas</p> <p>Iniciar Tarefa</p> <p>Finalizar Tarefa</p> <% } %> </div> <% conect.desconectar(conexao); %> </html>

1 Resposta

cariocathi

pra destruir a sessaosession.invalidate&#40;&#41;;

Criado 9 de novembro de 2003
Ultima resposta 9 de nov. de 2003
Respostas 1
Participantes 2