SlideShare una empresa de Scribd logo
1 de 5
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

La actualidad más candente

Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladoresPedro Cambra
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLjubacalo
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence APIJose Martinez
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desdejbersosa
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Ronald Cuello
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundojubacalo
 
Servicio web java php perl google
Servicio web  java php perl googleServicio web  java php perl google
Servicio web java php perl googleSeveredDRA
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DBjubacalo
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Ronald Cuello
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbcjbersosa
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysqlI LG
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útileshydras_cs
 

La actualidad más candente (20)

Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
JSP
JSPJSP
JSP
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence API
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
JPA en Netbeans
JPA en NetbeansJPA en Netbeans
JPA en Netbeans
 
Servicio web java php perl google
Servicio web  java php perl googleServicio web  java php perl google
Servicio web java php perl google
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Introjsp
IntrojspIntrojsp
Introjsp
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
 
Conexion del jpa con mysql
Conexion del jpa con mysqlConexion del jpa con mysql
Conexion del jpa con mysql
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Clase 15
Clase 15Clase 15
Clase 15
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útiles
 

Destacado

Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesEmmanuel Fontán
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
Diagnóstico situacional
Diagnóstico situacionalDiagnóstico situacional
Diagnóstico situacionaluaemuaples
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (8)

Componentes en-poo
Componentes en-pooComponentes en-poo
Componentes en-poo
 
Diagnóstico situacional
Diagnóstico situacionalDiagnóstico situacional
Diagnóstico situacional
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Diagnóstico situacional
Diagnóstico situacionalDiagnóstico situacional
Diagnóstico situacional
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a Java beans en jsp (20)

JavaServer Page
JavaServer PageJavaServer Page
JavaServer Page
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
spring framework
spring frameworkspring framework
spring framework
 
10.desarrollowebconjava
10.desarrollowebconjava10.desarrollowebconjava
10.desarrollowebconjava
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
JDBC
JDBCJDBC
JDBC
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 2 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 2 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 2 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 2 -2020
 
Jsp
JspJsp
Jsp
 
Ejb30 3
Ejb30 3 Ejb30 3
Ejb30 3
 
Capitulo3 jsf
Capitulo3 jsfCapitulo3 jsf
Capitulo3 jsf
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Taller desarrollo web
Taller  desarrollo webTaller  desarrollo web
Taller desarrollo web
 
Bases de datos con java
Bases de datos con javaBases de datos con java
Bases de datos con java
 
Curso Java Avanzado 3 4 Js Ps Con Java Beans
Curso Java Avanzado   3 4 Js Ps Con Java BeansCurso Java Avanzado   3 4 Js Ps Con Java Beans
Curso Java Avanzado 3 4 Js Ps Con Java Beans
 
Jyoc java-cap16 persistencia. bases de datos
Jyoc java-cap16 persistencia. bases de datosJyoc java-cap16 persistencia. bases de datos
Jyoc java-cap16 persistencia. bases de datos
 
Etiquetas jsp
Etiquetas jspEtiquetas jsp
Etiquetas jsp
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 

Más de Boris Salleg

01. capitulo 2 6 validacion de datos
01. capitulo 2  6 validacion de datos01. capitulo 2  6 validacion de datos
01. capitulo 2 6 validacion de datosBoris Salleg
 
03. prueba de conocimiento inicial excel basico terminada
03. prueba de conocimiento inicial excel basico terminada03. prueba de conocimiento inicial excel basico terminada
03. prueba de conocimiento inicial excel basico terminadaBoris Salleg
 
01. contenido curso internet basico
01. contenido curso internet basico01. contenido curso internet basico
01. contenido curso internet basicoBoris Salleg
 
Contenido curso excel basico
Contenido curso excel basicoContenido curso excel basico
Contenido curso excel basicoBoris Salleg
 
Compromiso academico servicios de internet
Compromiso academico servicios de internetCompromiso academico servicios de internet
Compromiso academico servicios de internetBoris Salleg
 
Compromiso academico excel basico
Compromiso academico excel basicoCompromiso academico excel basico
Compromiso academico excel basicoBoris Salleg
 
Taller #1 institucion educativa las margaritas
Taller #1   institucion educativa las margaritasTaller #1   institucion educativa las margaritas
Taller #1 institucion educativa las margaritasBoris Salleg
 
Introduccion base de datos
Introduccion base de datosIntroduccion base de datos
Introduccion base de datosBoris Salleg
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspBoris Salleg
 
Conexion bd en java y api necesaria
Conexion bd en java y api necesariaConexion bd en java y api necesaria
Conexion bd en java y api necesariaBoris Salleg
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionBoris Salleg
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionBoris Salleg
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
Introduccion base de datos con MYSQL
Introduccion base de datos con MYSQLIntroduccion base de datos con MYSQL
Introduccion base de datos con MYSQLBoris Salleg
 

Más de Boris Salleg (20)

01. capitulo 2 6 validacion de datos
01. capitulo 2  6 validacion de datos01. capitulo 2  6 validacion de datos
01. capitulo 2 6 validacion de datos
 
03. prueba de conocimiento inicial excel basico terminada
03. prueba de conocimiento inicial excel basico terminada03. prueba de conocimiento inicial excel basico terminada
03. prueba de conocimiento inicial excel basico terminada
 
01. contenido curso internet basico
01. contenido curso internet basico01. contenido curso internet basico
01. contenido curso internet basico
 
Contenido curso excel basico
Contenido curso excel basicoContenido curso excel basico
Contenido curso excel basico
 
Compromiso academico servicios de internet
Compromiso academico servicios de internetCompromiso academico servicios de internet
Compromiso academico servicios de internet
 
Compromiso academico excel basico
Compromiso academico excel basicoCompromiso academico excel basico
Compromiso academico excel basico
 
Taller #1 institucion educativa las margaritas
Taller #1   institucion educativa las margaritasTaller #1   institucion educativa las margaritas
Taller #1 institucion educativa las margaritas
 
Arboles
ArbolesArboles
Arboles
 
Introduccion base de datos
Introduccion base de datosIntroduccion base de datos
Introduccion base de datos
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
 
Conexion bd en java y api necesaria
Conexion bd en java y api necesariaConexion bd en java y api necesaria
Conexion bd en java y api necesaria
 
Condicionales
CondicionalesCondicionales
Condicionales
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacion
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Introduccion base de datos con MYSQL
Introduccion base de datos con MYSQLIntroduccion base de datos con MYSQL
Introduccion base de datos con MYSQL
 
Practica eventos
Practica eventosPractica eventos
Practica eventos
 
Clase event
Clase eventClase event
Clase event
 
Manejoevento
ManejoeventoManejoevento
Manejoevento
 
Layout
LayoutLayout
Layout
 

Último

Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 

Último (20)

Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 

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>