Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Problemas con operador == en JSP

Estas en el tema de Problemas con operador == en JSP en el foro de Java en Foros del Web. Hola a tod@s Tengo una aplicación web en jsp, el problema que he observado es que al utilizar el operador de igualdad como por ejemplo: ...
  #1 (permalink)  
Antiguo 27/06/2013, 12:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 0
Problemas con operador == en JSP

Hola a tod@s

Tengo una aplicación web en jsp, el problema que he observado es que al utilizar el operador de igualdad como por ejemplo:

if((usuario=="admin")&&(clave=="admin"))

Pues siempre que pongo ese operador pasa de todo, es como si no leyese la línea de código, me ha surgido durante la programación de la aplicación en diferentes páginas ("if codigo==5") o lo que sea, y siempre se lo salta, no le gusta, en cambio si pongo != el operador distinto sí que lo hace, pero con el == nada.

¿Qué estoy haciendo mal?

Gracias
  #2 (permalink)  
Antiguo 27/06/2013, 12:19
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Problemas con operador == en JSP

Con tipos de datos como int, double, char, byte, etc.. no hay problema por que son tipos de datos primitivos.

Pero en Java los strings son objetos. Y cuando usas el operador de igualdad en los strings solamente checa que sea la misma referencia al objeto strings. Entonces para evitar esto tienes que usar el metodo equals.

Código Java:
Ver original
  1. public class Main {
  2.     public static void main(String args[])
  3.     {
  4.         String a = "Hola";
  5.         String b = a; // Mismo objeto string
  6.         if(a == b) {
  7.             System.out.println("a == b");
  8.         }
  9.         else {
  10.             System.out.println("a != b");
  11.         }
  12.         b = new String("Hola"); // Diferente objeto string
  13.         if(a == b) {
  14.             System.out.println("a == b");
  15.         }
  16.         else {
  17.             System.out.println("a != b");
  18.         }
  19.  
  20.         // Usar equals
  21.         if(a.equals(b)) {
  22.             System.out.println("a es igual a b");
  23.         }
  24.         else {
  25.             System.out.println("a es diferente a b");
  26.         }
  27.     }
  28. }
  #3 (permalink)  
Antiguo 28/06/2013, 07:21
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas con operador == en JSP

Como bien dice el comentario anterior, con String debes usar equals. Una variable almacena un conjunto de bits. Si la variable es primitiva almacena el valor pero si la variable es de referencia a un objeto(como String) almacena los bits que hacen referencia al objeto en memoria, nada que ver con el valor que puede almacenar este objeto.
  #4 (permalink)  
Antiguo 28/06/2013, 11:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con operador == en JSP

Muchas gracias razpeitia, tienes razón con tu explicación, ahora ya me funciona, si es que soy un animal de bellotas.......... en fín, sin más comentarios

Etiquetas: jsp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:44.