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

Diferencias

Estas en el tema de Diferencias en el foro de Java en Foros del Web. Hola a todos! Tengo unas dudillas de codigo y me gustaria saber si me pueden ayudar. Qué diferencia hay entre: session.getAttribute("usuario").toString(); String nombre = (String)session.getAttribute("usuario"); ...
  #1 (permalink)  
Antiguo 30/11/2004, 05:03
 
Fecha de Ingreso: julio-2004
Mensajes: 10
Antigüedad: 20 años, 4 meses
Puntos: 0
Busqueda Diferencias

Hola a todos!
Tengo unas dudillas de codigo y me gustaria saber si me pueden ayudar.
Qué diferencia hay entre:
  • session.getAttribute("usuario").toString();
  • String nombre = (String)session.getAttribute("usuario");

Asimismo, dentro de un servlet, hay alguna diferencia entre:
  • RequestDispatcher rd = request.getRequestDispatcher("../examples/servlet/home.jsp");
  • response.sendRedirect("../examples/servlet/home.jsp");

Tal vez sean similares pero si existe alguna caracteristica importante me gustaria saberla para crear un codigo mas correcto.
Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 30/11/2004, 05:23
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 4 meses
Puntos: 10
En la primera opcion, la diferencia esta en que al llamar al metodo toString de un objeto se escribe la informacion de ese objeto, todos los objetos en Java eredan ese metodo de la clase super padre Object, y si tu lo sobreescribes puedes hacer que se muestra la informacion que desees al ser llamado, ese ese caso, estan llamando al metodo toString del Objeto usuario, que puede devolver culquier cosa dependiendo de como fue sobreescrito, o bien si no.
En la segunda forma lo que se esta haciendo es un Cast, eso quiere decir que se esta intentando transformar en objeto usuario a un String, debido a que el metodo getAttribute devuelve un tipo Object, si quieres usar este Objeto y susu metodos como en el Objeto original que fue insertado, debes de recombertirlo a su objeto original, en este caso se esta recombirtiendo a un objeto String que fue seguramente el que se guardo, en caso de que estes haciendo un Cast con objetos incompatibles, es decir, si pones en la session un objeto de tipo Iterator, y este lo intentas combertir al sacralo en un Integre por ejemplo, te arrojara una excepcion de tipos incompatibles, en este caso no estoy seguro si al intentar comberir cualquier objeto a un String por defecto se guardara en el nuevo objeto String lo que retone el metodo toString del objeto original, o bien tambien arrojara excepcion si el objeto original no era un String, pero esa es la diferencia entre la dos formas.

Con respecto a la segunda, la verdad es que jamas he usado una redireccion de la primera forma, solo he visto eso cuando las JSP se transforman en Servlets, por mi parte siempre uso sendRedirect pues es como siempre he leido quedebe hacerce, por tanto, no se que tnatan diferencia pueda haber entre una forma o la otra, pero yo te recomiendo que uses la segunda.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
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 13:51.