Caros colegas, a pouco tempo desenvolvi uma aplicação para Web em JSP e HSQLDB, a aplicação está funcionando normalmente, mas a pouco tempo tive que criar um sistema de validação de senha, o sistema está funcionando, validando normal. Eu criei um arquivo chamado "ValidaLogin.jsp", ele tem toda a regra de validação, quando o usuário é validado no banco de dados, ele pega informações do banco e armazena numa variável de "Sessão", e quando não é validado no banco, as variáveis de "Sessão" não setadas para "null" e "false", e foi também inserido em cada página jsp, uma rotina de validação, para que o usuário não entre em locais restritos. O meu problema é que se o usuário tenta entrar em uma página quando não estiver logado, ele recebe uma mensagem JasperException, mas se ele tenta logar e não obtem sucesso e depois tenta entrar em alguma página ele recebe mensagem informando que ele deve primeiramente efetuar o login para prosseguir no uso das páginas. O problema é, porque quando ele tenta logar e o login ou senha está inválido, e ele tenta entrar em alguma página restrita e ele recebe a mensagem informando que ele deve efetuar o login, e quando ele não tenta efetuar o login e vai direto à alguma página ele recebe uma exceção JasperException? Veja abaixo minha aplicação:
 
Obrigado a Todos.
 
Halex Maciel
Cuiabá-MT
 
Minha página "ValidaLogin.jsp":
 
<%@ page import="java.sql.*" %>
<%@ page import="javax.servlet.http.*" %>
<%
    //
    //Processo de Validação de login
    //
    //Pega os parametros do formulário de solicitação de login
    String stremail = request.getParameter("txtemail");
    String strsenha = request.getParameter("txtsenha");
    String mensagem = "";
 
   //
    try {
     //Cria a instancia do banco de dados
        Class.forName("org.hsqldb.jdbcDriver");
     } catch (Exception e){
      mensagem += "Classe do banco de dados não foi localizada" + e; 
     }
 
 try {
        //Cria a conexão com o banco de dados
        Connection Conn = DriverManager.getConnection         ("jdbc:hsqldb:hsql://localhost:8887:dblabfic","sa","");
        Statement stmt = Conn.createStatement();
 
        //Executa a consulta
        String sql = "SELECT * From Pessoas WHERE email = '" + stremail + "' AND senha='" + strsenha + "'";
        ResultSet rs = stmt.executeQuery(sql);
  
 if (rs.next()) {
  int Tipo = rs.getInt("direito");
        //Redireciona baseado nos direitos de usuário
        if (Tipo == 1) {
      session.setAttribute("EstaLogado","true");
            session.setAttribute("eAdmin","true");
   session.setAttribute("msg","Logado");
            response.sendRedirect("Admin/administracao.jsp");
        } else {
      session.setAttribute("EstaLogado","true");
            session.setAttribute("eAdmin","false");
   session.setAttribute("msg","Logado");
            response.sendRedirect("index2.jsp");
        }
    } //Caso o login venha falhar ou login inválido
 else {
   session.setAttribute("msg","Login ou senha inválido!");
     session.setAttribute("EstaLogado","false");
        session.setAttribute("eAdmin","false");
        response.sendRedirect("index.jsp?msg=Login%20ou%20Senha%20Inválido");
    }
 } catch (SQLException ex) {
  mensagem += "Problemas com SQL" + ex;
 }
%>
 
 
Este é o cabeçalho de todas as páginas restritas:
 
<%
 // Verifica session se é nula, caso seja redireciona para página de login com parametro de mensagem
    if (session.getAttribute("EstaLogado") == null)
        response.sendRedirect("index.jsp?msg=Por%20%20favor,%20efetue%20seu%20login.");
    else
    {   // Verifica o conteúdo é falso ou verdadeiro, se verdadeiro ele habilita navegação na página
         String logado = session.getAttribute("EstaLogado").toString();
        if (!(logado == "true"))
            response.sendRedirect("index.jsp?msg=Por%20%20favor,%20efetue%20seu%20login.");
    }
%>

Responder a