JSP (Java Server Page) - diferencia entre jsp:setproperty y crear un objeto

 
Vista:

diferencia entre jsp:setproperty y crear un objeto

Publicado por Mauricio Villa (2 intervenciones) el 27/02/2007 19:25:53
Tengo una duda..

Cual es la diferencia entre setear un atributo de un beans mediante:

<jsp:useBean id="usuario" scope="request" class="usuarios.Usuario"/>
<jsp:setProperty name="usuario" property="*"/>

usuario.setNombre_usuario(request.getParameter("nombre_usuario"));

y la de crear un objeto y setear el atributo:

Usuario usuario=new Usuario();
usuario.setNombre_usuario(request.getParameter("nombre_usuario"));

Al parecer la segunda opción siempre crea un nuevo objeto, en cambio la primera lo crea sólo la primera vez que se ingresa a la página, mejorando así la eficiencia.

Que me dicen?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:diferencia entre jsp:setproperty y crear un obj

Publicado por Gonzalo (72 intervenciones) el 28/02/2007 09:01:41
<jsp:useBean id="usuario" scope="request" class="usuarios.Usuario"/>

El funcionamiento de useBean depende principalmente del scope que le pongas. Básicamente lo que hace es:

Busca en el scope (en este caso en la request, pero podría buscarlo por ejemplo en la sesión o en la página) si existe un objeto de tipo usuarios.Usuario llamado usuario.
a. Si lo encuentra, lo trae al contexto de tu página.
b. Si no lo hay, instancia un nuevo objeto de tipo usuarios.Usuario.

Luego
<jsp:setProperty name="usuario" property="*"/>
Lo que hace es, al objeto usuario le asigna todos (property="*") los parámetros recibidos en la request.

Así que las principales diferencias son:
1. Reutiliza el bean si ya existe. Y esto no sólo es un tema de rendimiento, sino que también tiene otras razones y consecuencias. Si el scope es session, se mantendrán las propiedades que tenga ese objeto en toda la sesión. Si es request se mantienen en toda la request (de modo que podrías crear el bean en el servlet, ponerle sus propiedades y meterlo en la request. Luego al hacer un forward al JSP, usas ese mismo bean que tienes preparado).
2. Evitas utilizar directamente trozos de código Java en el JSP, que siempre es mejor y queda el código más limpio y ordenado.
3. Esto sólo es válido para objetos que siguen la estructura de bean. Es decir, constructor sin parámetros, accesores get y set para las propiedades, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar