SlideShare una empresa de Scribd logo
JavaBeans en JSP

   •   La idea de JavaBeans surge de una vieja necesidad de la Ingeniería del
       Software: contar con componentes reutilizables e independientes de la
       plataforma. El programador que hace el JB no hace nada misterioso,
       simplemente define una clase, tratando de encapsular (ocultar) su
       implementación y mostrando al exterior (el programador que usa el
       bean) solamente los métodos y propiedades que son públicos. Sólo se
       muestra aquello que forma parte del servicio que el bean ofrece al
       exterior.



   •   Este concepto es un elemento esencial del trabajo eficiente en equipo,
       colaborar sin que cada ingeniero tenga que repetir el trabajo que ha
       realizado otro, sin que tenga que enfrentarse a las mismas dificultades
       que ha resuelto otro. El programador que usa el bean sólo debe
       preocuparse de lo QUE hace el bean (el servicio que ofrece), no tiene
       que enfrentarse al trabajo realizado por el diseñador del bean, es decir,
       le queda oculta la implementación (el COMO el bean ofrece el servicio).



   •   La idea va a a más: donde se ha dicho "equipo" se puede entender la
       comunidad global de desarrollo de software; de hecho existen
       numerosas empresas        que   ofrecen/venden     beans a       otros
       desarrolladores. En el caso de los JavaBeans la idea es que estos
       componentes reusables se puedan utilizar en diversos contextos: desde
       JavaBeans gráficos de capa cliente (controles de interfaz) hasta
       JavaBeans de capa web (normalmente representan entidades o reglas
       de negocio).



JavaBean de ejemplo

Aunque no ha sido necesario en este ejemplo, los JavaBean deben ser
serializables (o heredar de una clase serializables), si es que queremos usar
la serialización de objetos.

package objeto;

public class asignatura
{
  public String Nombre;
  public double nota;

  public void asignatura()
  {
}

    public String getNombre()
    {
      return Nombre;
    }

     public void setNombre(String Nombre)
    {
       this.Nombre = Nombre;
     }

    public double getNota() {
      return nota;
    }

     public void setNota(double nota)
    {
       this.nota = nota;
     }
     public String getresultado ()
     {
        if (nota <3)
            return "Reprueba" ;

        else
          return "Aprueba";
    }

}


Para instanciar las clases del API de Java no hay más que utilizar el viejo
operador new.

Pero las clases que representan entidades y reglas de negocio se llaman
JavaBeans y exigen unas etiquetas específicas:

<jsp:usebean id="id_del_objeto" scope="page | request | session | Application"
class="paquete...subpaquete.clase.class" beanName="nombre_del_bean"/>

El id es un nombre identificativo, seleccionado por el programador. Además
debemos declarar su alcance o ámbito (scope). Un alcance "request" implica
que el bean es accesible hasta otra JSP que haya sido invocada por medio de
jsp:forwar o jsp:include. El beanName es opcional, sigue la lógica Java de
paquete.subpaquete y se utiliza si se usa el método instantiate() de
java.beans.Beans.
En nuestro ejemplo:

<jsp:useBean id="nota" scope="page" class="objeto.asignatura">

De esta sencilla línea se puede deducir que al menos debemos definir en el
JavaBean el constructor vacío, que es el que utiliza el motor JSP en la
creación del objeto.

Existe una segunda sintaxis:

<jsp:usebean id="id_del_objeto" scope="page | request | session | application"
class="paquete...subpaquete.clase.class" beanName="nombre_del_bean">



                             Instanciacion del Bean

</jsp:useBean>

En este caso se ejecutan las instrucciones si el bean es instanciado. Dichas
instrucciones pueden ser cualquier contenido JSP, aunque normalmente
consiste en Scriptlets y acciones setProperty.

Los métodos setXXX() y getXXX() son puramente convencionales, podríamos
haberlos llamado defXXX() y obtXXX(), sin embargo es conveniente usar los
métodos setXXX() y getXXX() para propiciar la interoperabilidad e integración
con software de otros fabricante. Además esto facilita el uso de acciones
setProperty y getProperty.




Uso de setProperty y getProperty

jsp:setProperty se usa en conjunción con jsp:useBean para definir valores de
propiedades. Las etiquetas jsp:setProperty y jsp:getProperty nos evitan los
scriptlets y se encargan de invocar a los métodos setXXX() y getXXX() del
JavaBean.

<jsp:setProperty
     name="id_del_objeto"
     property="nombre_propiedad"|"*"
     param="nombre_parametro_de_request"|
     value="valor" />

Esta acción puede aplicarse a una propiedad:

<jsp:setProperty name="nota" property= "nota"></jsp:setProperty>
O a todas aquellas propiedades cuyo nombre coincide con parámetros de
la petición (request), es decir, selecciona los parámetros que coinciden en
nombre con las propiedades y copia los valores en sus correspondientes
propiedades:


<jsp:setProperty name="nota" property="*" />

Si queremos solamente extraer el valor de un parámetro (en el siguiente
ejemplo es 'identificacion') y copiarlo a un atributo ('nombre'):


<jsp:setProperty
     name="nota"
     property="nombre"
     param="nombre" />

Con value podemos especificar un valor para la propiedad, pero esta etiqueta
es incompatible con param.

En el siguiente ejemplo se obtiene el nombre de un formulario mediante
request.getParameter() y se almacena en el Bean:

<%! String tuNombre; %>
<% tuNombre = request.getParameter( "nombre" ); %>
<jsp:setProperty name="nota" property="nombre"
value="<%=tuNombre%>" />

Como ya hemos visto, esto se puede hacer de forma más breve:


<jsp:setProperty name="nota" property="nombre"
param="nombre" />

Incluso se puede hacer durante la instanciación:


<jsp:useBean id="nota"
             scope="page"
             class="objeto.asignatura">

    <jsp:setProperty
         name="nota"
        property="*" />

</jsp:useBean>
El ejemplo completo


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
  </head>
  <body>
    <h1>Trabajando con los beans !</h1>


<jsp:useBean id="nota" scope="page" class="objeto.asignatura">
  <jsp:setProperty name="nota" property= "nota"></jsp:setProperty>
    <%
     nota.setNota(4);

    %>
  <jsp:getProperty name="nota" property= "nota"></jsp:getProperty>
  <p>Hemos creado una instancia del JavaBean. La clase se llama
     <%=nota.getClass().getName()%>.<p></p>

        El nombre de la instancia es <%=nota.getClass().getSuperclass()%>
     <p ></p>
     y la Nota es <%= nota.getNota()%> <br>
    <jsp:getProperty name="nota" property= "resultado"></jsp:getProperty>
    El resultado es <%nota.getresultado(); %><p></p>
</jsp:useBean>
  </body>
</html>

Más contenido relacionado

PPTX
serie de potencias 04-07-23.pptx
PDF
4 fontes cc
DOC
Cap 2 tabla periodica
PDF
Analise real-vol-1-elon-lages-lima
PDF
Ley de senos y cosenos
PDF
Problemas y ejercicios de analisis matematico (g. n. berman) [mir, 1977]
PDF
La Matematica del Corazon
DOCX
Ejercicios de fisica 3
serie de potencias 04-07-23.pptx
4 fontes cc
Cap 2 tabla periodica
Analise real-vol-1-elon-lages-lima
Ley de senos y cosenos
Problemas y ejercicios de analisis matematico (g. n. berman) [mir, 1977]
La Matematica del Corazon
Ejercicios de fisica 3

La actualidad más candente (7)

PPT
Expocicion Geometria Analitica La Recta
PDF
Actividad nro 1 fisica II maria matheus
PPTX
Cónicas, ecuaciones paramétricas y coordenadas polares.math
ODP
Problema resuelto con Gauss
PPT
Integracion numerica
PDF
Calculo diferencial e integral teoria y 1175 problemas resueltos - frank ay...
PDF
Ejemplo de integración numérica
Expocicion Geometria Analitica La Recta
Actividad nro 1 fisica II maria matheus
Cónicas, ecuaciones paramétricas y coordenadas polares.math
Problema resuelto con Gauss
Integracion numerica
Calculo diferencial e integral teoria y 1175 problemas resueltos - frank ay...
Ejemplo de integración numérica
Publicidad

Destacado (9)

DOCX
Practica utilizacion de beans en jsp
PPT
Componentes en-poo
PPTX
Diagnóstico situacional
PDF
Metodología de desarrollo de software basada en componentes
DOC
Modelo componentes
PPTX
Desarrollo de software basado en componentes
PPTX
Diagnóstico situacional
PDF
How to Make Awesome SlideShares: Tips & Tricks
PDF
Getting Started With SlideShare
Practica utilizacion de beans en jsp
Componentes en-poo
Diagnóstico situacional
Metodología de desarrollo de software basada en componentes
Modelo componentes
Desarrollo de software basado en componentes
Diagnóstico situacional
How to Make Awesome SlideShares: Tips & Tricks
Getting Started With SlideShare
Publicidad

Similar a Java beans en jsp (20)

PDF
PDF
Java Web Lección 02 - JSP
PPTX
spring framework
PDF
10.desarrollowebconjava
PPTX
Java Web - JSP
PDF
Manual Basico De Struts
PPT
Curso Java Avanzado 5 Ejb
PDF
Hands-on Spring 3: The next generation
PDF
POOABD (POO Aplicada a B Datos) - API JDBC parte 2 -2020
PDF
ODP
PDF
Ejb30 3
PDF
Capitulo3 jsf
PDF
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
DOCX
Utilizacion de beans en jsp
PPTX
Spring framework
PDF
Taller desarrollo web
PDF
Bases de datos con java
PPT
Curso Java Avanzado 3 4 Js Ps Con Java Beans
Java Web Lección 02 - JSP
spring framework
10.desarrollowebconjava
Java Web - JSP
Manual Basico De Struts
Curso Java Avanzado 5 Ejb
Hands-on Spring 3: The next generation
POOABD (POO Aplicada a B Datos) - API JDBC parte 2 -2020
Ejb30 3
Capitulo3 jsf
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
Utilizacion de beans en jsp
Spring framework
Taller desarrollo web
Bases de datos con java
Curso Java Avanzado 3 4 Js Ps Con Java Beans

Más de Boris Salleg (20)

DOCX
01. capitulo 2 6 validacion de datos
DOCX
03. prueba de conocimiento inicial excel basico terminada
PPTX
01. contenido curso internet basico
PPTX
Contenido curso excel basico
DOCX
Compromiso academico servicios de internet
DOCX
Compromiso academico excel basico
DOCX
Taller #1 institucion educativa las margaritas
PPT
Arboles
DOCX
Introduccion base de datos
DOCX
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
PPTX
Conexion bd en java y api necesaria
DOCX
Condicionales
DOCX
Algoritmo variables, constantes, tipos de datos y asignacion
DOCX
Algoritmos, programas, compiladores y lenguajes de programacion
DOCX
Algoritmo de listas simples completo
DOCX
Introduccion base de datos con MYSQL
DOCX
Practica eventos
DOCX
Clase event
PPTX
Manejoevento
DOCX
Layout
01. capitulo 2 6 validacion de datos
03. prueba de conocimiento inicial excel basico terminada
01. contenido curso internet basico
Contenido curso excel basico
Compromiso academico servicios de internet
Compromiso academico excel basico
Taller #1 institucion educativa las margaritas
Arboles
Introduccion base de datos
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Conexion bd en java y api necesaria
Condicionales
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmo de listas simples completo
Introduccion base de datos con MYSQL
Practica eventos
Clase event
Manejoevento
Layout

Último (20)

PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
2 GRADO UNIDAD 5 - 2025.docx para primaria
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Escuela Sabática 6. A través del Mar Rojo.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Punto Critico - Brian Tracy Ccesa007.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...

Java beans en jsp

  • 1. JavaBeans en JSP • La idea de JavaBeans surge de una vieja necesidad de la Ingeniería del Software: contar con componentes reutilizables e independientes de la plataforma. El programador que hace el JB no hace nada misterioso, simplemente define una clase, tratando de encapsular (ocultar) su implementación y mostrando al exterior (el programador que usa el bean) solamente los métodos y propiedades que son públicos. Sólo se muestra aquello que forma parte del servicio que el bean ofrece al exterior. • Este concepto es un elemento esencial del trabajo eficiente en equipo, colaborar sin que cada ingeniero tenga que repetir el trabajo que ha realizado otro, sin que tenga que enfrentarse a las mismas dificultades que ha resuelto otro. El programador que usa el bean sólo debe preocuparse de lo QUE hace el bean (el servicio que ofrece), no tiene que enfrentarse al trabajo realizado por el diseñador del bean, es decir, le queda oculta la implementación (el COMO el bean ofrece el servicio). • La idea va a a más: donde se ha dicho "equipo" se puede entender la comunidad global de desarrollo de software; de hecho existen numerosas empresas que ofrecen/venden beans a otros desarrolladores. En el caso de los JavaBeans la idea es que estos componentes reusables se puedan utilizar en diversos contextos: desde JavaBeans gráficos de capa cliente (controles de interfaz) hasta JavaBeans de capa web (normalmente representan entidades o reglas de negocio). JavaBean de ejemplo Aunque no ha sido necesario en este ejemplo, los JavaBean deben ser serializables (o heredar de una clase serializables), si es que queremos usar la serialización de objetos. package objeto; public class asignatura { public String Nombre; public double nota; public void asignatura() {
  • 2. } public String getNombre() { return Nombre; } public void setNombre(String Nombre) { this.Nombre = Nombre; } public double getNota() { return nota; } public void setNota(double nota) { this.nota = nota; } public String getresultado () { if (nota <3) return "Reprueba" ; else return "Aprueba"; } } Para instanciar las clases del API de Java no hay más que utilizar el viejo operador new. Pero las clases que representan entidades y reglas de negocio se llaman JavaBeans y exigen unas etiquetas específicas: <jsp:usebean id="id_del_objeto" scope="page | request | session | Application" class="paquete...subpaquete.clase.class" beanName="nombre_del_bean"/> El id es un nombre identificativo, seleccionado por el programador. Además debemos declarar su alcance o ámbito (scope). Un alcance "request" implica que el bean es accesible hasta otra JSP que haya sido invocada por medio de jsp:forwar o jsp:include. El beanName es opcional, sigue la lógica Java de paquete.subpaquete y se utiliza si se usa el método instantiate() de java.beans.Beans.
  • 3. En nuestro ejemplo: <jsp:useBean id="nota" scope="page" class="objeto.asignatura"> De esta sencilla línea se puede deducir que al menos debemos definir en el JavaBean el constructor vacío, que es el que utiliza el motor JSP en la creación del objeto. Existe una segunda sintaxis: <jsp:usebean id="id_del_objeto" scope="page | request | session | application" class="paquete...subpaquete.clase.class" beanName="nombre_del_bean"> Instanciacion del Bean </jsp:useBean> En este caso se ejecutan las instrucciones si el bean es instanciado. Dichas instrucciones pueden ser cualquier contenido JSP, aunque normalmente consiste en Scriptlets y acciones setProperty. Los métodos setXXX() y getXXX() son puramente convencionales, podríamos haberlos llamado defXXX() y obtXXX(), sin embargo es conveniente usar los métodos setXXX() y getXXX() para propiciar la interoperabilidad e integración con software de otros fabricante. Además esto facilita el uso de acciones setProperty y getProperty. Uso de setProperty y getProperty jsp:setProperty se usa en conjunción con jsp:useBean para definir valores de propiedades. Las etiquetas jsp:setProperty y jsp:getProperty nos evitan los scriptlets y se encargan de invocar a los métodos setXXX() y getXXX() del JavaBean. <jsp:setProperty name="id_del_objeto" property="nombre_propiedad"|"*" param="nombre_parametro_de_request"| value="valor" /> Esta acción puede aplicarse a una propiedad: <jsp:setProperty name="nota" property= "nota"></jsp:setProperty>
  • 4. O a todas aquellas propiedades cuyo nombre coincide con parámetros de la petición (request), es decir, selecciona los parámetros que coinciden en nombre con las propiedades y copia los valores en sus correspondientes propiedades: <jsp:setProperty name="nota" property="*" /> Si queremos solamente extraer el valor de un parámetro (en el siguiente ejemplo es 'identificacion') y copiarlo a un atributo ('nombre'): <jsp:setProperty name="nota" property="nombre" param="nombre" /> Con value podemos especificar un valor para la propiedad, pero esta etiqueta es incompatible con param. En el siguiente ejemplo se obtiene el nombre de un formulario mediante request.getParameter() y se almacena en el Bean: <%! String tuNombre; %> <% tuNombre = request.getParameter( "nombre" ); %> <jsp:setProperty name="nota" property="nombre" value="<%=tuNombre%>" /> Como ya hemos visto, esto se puede hacer de forma más breve: <jsp:setProperty name="nota" property="nombre" param="nombre" /> Incluso se puede hacer durante la instanciación: <jsp:useBean id="nota" scope="page" class="objeto.asignatura"> <jsp:setProperty name="nota" property="*" /> </jsp:useBean>
  • 5. El ejemplo completo <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Trabajando con los beans !</h1> <jsp:useBean id="nota" scope="page" class="objeto.asignatura"> <jsp:setProperty name="nota" property= "nota"></jsp:setProperty> <% nota.setNota(4); %> <jsp:getProperty name="nota" property= "nota"></jsp:getProperty> <p>Hemos creado una instancia del JavaBean. La clase se llama <%=nota.getClass().getName()%>.<p></p> El nombre de la instancia es <%=nota.getClass().getSuperclass()%> <p ></p> y la Nota es <%= nota.getNota()%> <br> <jsp:getProperty name="nota" property= "resultado"></jsp:getProperty> El resultado es <%nota.getresultado(); %><p></p> </jsp:useBean> </body> </html>