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 & 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>