If(variavel == "valor"){ NÃO FUNCIONA e não entendo o motivo!
6 respostas
Rodrigo_Lucca
E ai galera!!!
Meu problema acredito ser simples e bem babaca!!!! mas estou apanhando pra caramba dele....
Sempre que pego uma variável pelo metotodo getParameter() e faço uma verificação simples tipo --> if(variavel=="valor) <-- não funciona!!! e eu não entendo o por que.
Um exemplo simples para vocês entenderem o que eu estou falando:
Eu tenho uma pagina JPS com um formulário que tem apenas 2 campos login e senha.
Quando eu dou um submit ele chama uma servlet que verifica se o login e a senha são válidos (de forma bem amadora. pq é só pra exemplo), para fazer a validação eu uso o seguinte código:
Stringuser=request.getParameter("user");Stringsenha=request.getParameter("senha");if(user=="rodrigo" && senha=="123abc"){out.println("Seja bem vindo "+user);
}else{
out.println("Usuário ou senha inválidos");
}
Eu preencho o formulário certinho no campo user eu digito rodrigo e no campo senha eu digito 123abc, mas ele sempre exibe "Usuário ou senha inválidos"
Eu já mandei ele exibir a variável user e a variável senha para ver se ele estava recebendo certinho os parametros e ele exibiu tudo certinho, eu realmente não entendo o que esta acontecendo!!! Será que alguem pode me ajudar por favor??? pq tem algumas páginas no meu sistema que eu preciso fazer esse tipo de verificação -->if(variavel=="valor" )<--
Tipo eu já programei em PHP e em Java mesmo, e nunca tive problemas com isso.
Se alguem puder me ajudar eu agradeço muito!!!...
Valeu galera espero resposta...
Abraço
if(user.equals("rodrigo")&&senha.equals("123abc")){
out.println("Seja bem vindo "+user);}else{
out.println("Usuário ou senha inválidos");}
Nem vou lhe explicar por que é que você não pode usar “==” aqui. Deixo isso aos universitários.
Rodrigo_Lucca
He he he …
Valeu cara… é q sou novão em JSP.
Mas eu programei em java, mas programa pra desktop, é que pra web to acostumado com PHP.
E o If(variavel==“valor” ) funciou com int ou quando o eu inicializo a variável sem pegar ela com request. tipo: String user=“rodrigo”
Valeu cara!!!
vou testar lá…
Abraço
andre_guitar7
Bem, pelo que entendo, vc está comparando dois objetos diferentes mas com conteúdo igual… quando vc usa o == vc está comparando objetos, quando vc usa o equals vc está comparando o conteúdo dos objetos.
Quando vc faz if( objetoString == “conteúdo” ) vc está comparando dois objetos diferentes com conteúdo igual… “conteúdo” é um novo objeto String instanciado na hora em que vc faz o if, com conteúdo igual ao do objetoString…
andre_guitar7
Rodrigo Lucca:
He he he …
Valeu cara… é q sou novão em JSP.
Mas eu programei em java, mas programa pra desktop, é que pra web to acostumado com PHP.
E o If(variavel==“valor” ) funciou com int ou quando o eu inicializo a variável sem pegar ela com request. tipo: String user=“rodrigo”
Valeu cara!!!
vou testar lá…
Abraço
Funciona com int pq é um tipo primitivo… java pra desktop é o mesmo pra web…
Rodrigo_Lucca
Valeu pela explicação…
Não tornarei a repetir o erro!! rsrss…
Valeu…
E eu sei q o java é o mesmo pra desktop e web mas é que programando pra desktop nunca precisei fazer esse tipo de comparação(pelo menos que eu lembre), e como no PHP funciona “==” achei que no JSP tbm funcionasse…
rsrs
Valeu pela força
Rodrigo_Lucca
PS:
Nada ver com Java só comentário…
Curti sua assinatura andre_guitar7!!
falou