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:
String user=request.getParameter(&quot;user&quot;);
String senha=request.getParameter(&quot;senha&quot;);

if(user==&quot;rodrigo&quot; && senha==&quot;123abc&quot;){
out.println(&quot;Seja bem vindo &quot;+user);
}else{
out.println(&quot;Usuário ou senha inválidos&quot;);
}
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

6 Respostas

T

Acho que o “Java” que você usou era JavaScript :stuck_out_tongue:

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!! :smiley:
falou

Criado 25 de agosto de 2006
Ultima resposta 25 de ago. de 2006
Respostas 6
Participantes 3