[RESOLVIDO]Erro campo null

Bom dia, estou com (outro) problema em meu sistema.
É o seguinte: quando eu cadastro algum usuário ele (teoricamente) não deveria permitir que nenhum campo ficasse vázio, mas ele está “pulando” essa parte e vai direto para a parte de criptografia da senha ( e inserção dos dados no bd, já tentei algumas modificações e não funcionaram.
Se alguém puder me ajudar, eu agradeço.
E desculpem, mais sou nova nessa area.

Aqui está o código:

 <%
            String nome = request.getParameter("nome");
            String email = request.getParameter("email");
            String login = request.getParameter("login");
            String senha = request.getParameter("senha");
            String senha2 = request.getParameter("senha2");

            if ((nome != null) && (email != null) && (login != null) && (senha != null) && (senha2 != null)) {
                if (senha.equals(senha2)) {          /*esta pulando direto para essa parte e ignorando a primeira*/
                    criptografia cripto = new criptografia();
                    String novasenha = cripto.novaSenha(senha);

                    conexao con = new conexao();
                    Connection conexao = con.abrir();

                    inserirDCadastro inserir = new inserirDCadastro();
                    inserir.cadUsuario(nome, email, login, novasenha, conexao);

                    response.sendRedirect("confCad.jsp?nome=" + nome);
                    conexao.close();

                } else {
                    out.println("<div id='senhasdiff'><center><li><b>ATENÇÃO!<br/> Senhas diferentes!</b></center></div>");
                }
            }
        %>

Seus campos podem estar vindo como “” em vez de null, assim retorna true e passa para a próxima instrução.

Comparacoes com String são sempre um pouco criticas, nem sempre todos os controles passam null quando seu conteúdo está vazio. Alguns passam “” (String vazia) que não é igual a null.

Então faça também, ou antes uma comparação do tipo:

if ((!nome.equalsIgnoreCase("")) && (!email.equalsIgnoreCase("")) && (!login.equalsIgnoreCase("")) && (!senha.equalsIgnoreCase("")) && (!senha2.equalsIgnoreCase("")))

Testei o que me falaram e apareceu o seguinte erro no meu navegador:

HTTP Status 500 -

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException

root cause

java.lang.NullPointerException

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1 logs.
GlassFish Server Open Source Edition 3.1

Parece que o erro foi resolvido e é outro agora.

Chegou ao response.sendRedirect(“confCad.jsp?nome=” + nome); ?

Não, esse erro aparece quando eu chamo a página do cadastro (cadastro.jsp)

Se você deixar somente dessa forma:

   if ((!nome.equalsIgnoreCase("")) && (!email.equalsIgnoreCase("")) && (!login.equalsIgnoreCase("")) && 
       (!senha.equalsIgnoreCase("")) && (!senha2.equalsIgnoreCase(""))) {
   ......
   }

Caso um desses atributos forem null, ele não conseguirá usar o metodo equalsIgnoreCase.

Portante sempre use a CONSTANTE, que no seu caso é “” (em branco), na frente doque você esta comparando.

"SIM".equalsIgnoreCase(flGerarTodasAsSenhasAgora)

Dessa forma se String flGerarTodasAsSenhasAgora for nula, a verificação acima vai dar False, sem dar exceção.

Seu codigo deve ficar assim:

   if ( (!"".equalsIgnoreCase(nome)) ..........) {
   ......
   }

:wink:

Ainda não, continuou mostrando o mesmo erro quando tento abrir cadastro.jsp

Coloque o código ai…

Página do cadastro.jsp “original”

[code]

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

    <link href="css/estilo.css" rel="stylesheet" type="text/css">

</head>
<body>
    <table class="login">
        <form action="cad.jsp" method="post">  
            <tr>
                <td>
                    <a href="index.jsp"></a>
                </td>
                <td>
                    Login:<br/>
                    <input type="textarea" name="login" /><br/>                 
                    Senha:<br/>
                    <input type="password" name="senha1" /><br/>
                </td>
            </tr>
        </form>
    </table>
    <table class="cad" frame="border">
        <form action='conf.jsp' method='post'>
            <tr>
                <td>
                    Nome:<br/>
                    <input id="cad" type="textarea" name="name" maxlength="50" />
                    <br/>
                    E-mail:<br/>
                    <input id="cad" type="textarea" name="email" maxlength="40" />
                    <br/>
                    Login:<br/>
                    <input id="cad" type="textarea" name="login" maxlength="40" />
                    <br/>
                    Senha:<br/>
                    <input id="cad" type="password" name="passw" maxlength="40" />
                    <br/>
                    Confirma senha:
                    <br/><input id="cad" type="password" name="passw2" maxlength="40" />
                    <br/>
                    <br/><input  type="submit" value="Enviar"/>
                </td>
            </tr>
        </form>
    </table>
    
    <br/><br/>
    [/code]

1 - Eu daria uma olhada com calma nas tuas Imports…

Usuario e Seguranca nao tem package??? Ou são Packages???

Lembre-se das convenções … packages minusculo e nome de classe iniciando em Maiusculo. Boa prática é tudo!

2 - Coloque o log do erro p/ sabermos onde foi que deu erro…

3 - Na linha 81, 84 e 87 …

81:

criptografia cripto = new criptografia();

84:

conexao con = new conexao();

87:

inserirDCadastro inserir = new inserirDCadastro();

deveria ser:

Criptografia cripto = new Criptografia();
Conexao con = new Conexao();
InserirDCadastro inserir = new InserirDCadastro();

A não ser que tu criou o nome da Classe em Minusculo… que também é uma péssima ideia.

Obrigada pelas dicas, consegui resolver o probleminha dos campo " "

coloquei a verificação dentro de um

e para inserir os dados criei uma nova pág validacadastros
e ela chama o confCad

Vou fazer as correções em relação as letras minúsculas, ninguém havia me dito que era “mal visto”.

Obrigada, novamente.

:wink:

Da uma lida…

http://java.sun.com/docs/codeconv/CodeConventions.pdf

Ou

http://www.nacaolivre.com.br/java/convencoes-de-codigo-java/