<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1960115620245184997</id><updated>2012-02-12T05:07:20.790-08:00</updated><category term='Serialización'/><category term='Parametros'/><category term='Webservices'/><category term='Wrapper'/><category term='Javabeans'/><category term='JSP'/><category term='Javascript'/><category term='Colecciones'/><category term='IReport'/><category term='Configuracion'/><category term='Subir imagen'/><category term='String'/><category term='Preparación Certificado SCJA'/><category term='JavaMail'/><category term='Ejemplo de uso'/><category term='Sesiones'/><category term='Excepciones'/><category term='Base de datos'/><category term='Servlet'/><category term='JDBC'/><title type='text'>Programador Java Web</title><subtitle type='html'>Apuntes de JEE</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-4407784284987693422</id><published>2012-02-12T05:07:00.000-08:00</published><updated>2012-02-12T05:07:20.800-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webservices'/><category scheme='http://www.blogger.com/atom/ns#' term='IReport'/><category scheme='http://www.blogger.com/atom/ns#' term='Ejemplo de uso'/><title type='text'>Ejemplo de uso de Webservices y Ireport – Tienda Online</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Con todo lo que sabemos hasta ahora podemos crear una tienda online. Puesto que el código necesario es muy extenso para ponerlo en esta entrada, lo podeis descargar&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/55535876/Tienda%20Online%20-%20programadorjavaweb.tk.rar" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;aquí&amp;nbsp;&lt;/a&gt;y abrirlo con vuestro netbeans.&lt;br /&gt;El proyecto se divide en 4 proyectos, que serán:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Webservice de Usuarios&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Webservice de Productos&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Webservice de Pedidos&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Proyecto cliente&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Y la base de datos es la siguiente:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-296" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;usuarios&lt;/strong&gt;&lt;br /&gt;idusuarios&amp;nbsp;INT(11) PK y AI&lt;br /&gt;nombre&amp;nbsp;VARCHAR(45)&lt;br /&gt;apellidos&amp;nbsp;VARCHAR(45)&lt;br /&gt;direccion&amp;nbsp;VARCHAR(45)&lt;br /&gt;cp&amp;nbsp;VARCHAR(45)&lt;br /&gt;localidad&amp;nbsp;VARCHAR(45)&lt;br /&gt;provincia&amp;nbsp;VARCHAR(45)&lt;br /&gt;pais&amp;nbsp;VARCHAR(45)&lt;br /&gt;telefono&amp;nbsp;VARCHAR(45)&lt;br /&gt;alias&amp;nbsp;VARCHAR(45)&lt;br /&gt;email&amp;nbsp;VARCHAR(45)&lt;br /&gt;password&amp;nbsp;VARCHAR(45)&lt;br /&gt;rol&amp;nbsp;TINYINT(4)&lt;br /&gt;activado&amp;nbsp;TINYINT(4)&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;productos&lt;/strong&gt;&lt;br /&gt;idproductos &amp;nbsp;INT(11)&amp;nbsp;PK y AI&lt;br /&gt;nombre&amp;nbsp;VARCHAR(245)&lt;br /&gt;descripción&amp;nbsp;VARCHAR(500)&lt;br /&gt;stock &amp;nbsp;INT(11)&lt;br /&gt;precio DOUBLE&lt;br /&gt;rutaFoto&amp;nbsp;VARCHAR(245)&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;compra&lt;/strong&gt;&lt;br /&gt;idcompra INT(11) PK y AI&lt;br /&gt;idUsuario INT(11)&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;pedidos&lt;/strong&gt;&lt;br /&gt;idpedidos&amp;nbsp;INT(11)&lt;br /&gt;unidades&amp;nbsp;INT(11)&lt;br /&gt;idProducto&amp;nbsp;INT(11)&lt;br /&gt;fecha&amp;nbsp;VARCHAR(45)&lt;br /&gt;estado VARCHAR(45)&lt;br /&gt;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;idpedidos es foreign key que hace referencia a la tabla compra&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-4407784284987693422?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/4407784284987693422/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/ejemplo-de-uso-de-webservices-y-ireport.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4407784284987693422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4407784284987693422'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/ejemplo-de-uso-de-webservices-y-ireport.html' title='Ejemplo de uso de Webservices y Ireport – Tienda Online'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-8412581417231168914</id><published>2012-02-12T05:00:00.000-08:00</published><updated>2012-02-12T05:00:58.044-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IReport'/><title type='text'>IReport – Creador de informes</title><content type='html'>&lt;br /&gt;&lt;h1 class="entry-title" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 21px; line-height: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;iReport es una herramienta visual que sirve para generar ficheros XML (plantillas de informe) que se puedan utilizar con la herramienta de generación de informes JasperReports. Por ejemplo, cuando se esta programando una tienda online, se puede usar el iReport para poder generar las facturas. Vamos a ver los pasos a seguir para hacer este caso:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En primer lugar hay que bajarse las librerías de Jasper (jasperreports-4.5.0-project.tar.gz)&lt;a href="http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%204.5.0/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Librerías Jasper"&gt;aquí&amp;nbsp;&lt;/a&gt;&amp;nbsp;y&amp;nbsp;el propio editor de informe iReport&amp;nbsp;&lt;a href="http://jasperforge.org/website/ireportwebsite/IR%20Website/ir_download.html?header=project&amp;amp;target=ireport" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="iReport"&gt;aquí&lt;/a&gt;.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En nuestro ejemplo, queremos crear un informe a partir del resultado de una consulta en nuestra base de datos. La base de datos se llama tienda y tiene las tablas compra, pedidos, productos y usuarios.&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-273" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;Ejecutamos el iReport y creamos un archivo nuevo. Elegimos la plantilla y pulsamos Launch Report Wizard. Ahí seleccionamos el lugar donde se van a guardar los archivos y en el siguiente paso debemos darle a New en el apartado de Connections/Data Sources.&amp;nbsp;&amp;nbsp;Seleccionamos Database JDBC connection, se configuran los parámetros de la base de datos &amp;nbsp;y luego escribes la consulta, por ejemplo:&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SELECT&amp;nbsp;idcompra,idusuarios,alias,idproductos,productos.`nombre`,unidades,precio,fecha&lt;br /&gt;FROM&amp;nbsp;`productos` productos INNER JOIN `pedidos` pedidos ON productos.`idproductos` = pedidos.`idProducto`,&lt;br /&gt;`usuarios` usuarios INNER JOIN `compra` compra ON usuarios.`idusuarios` = compra.`idUsuario`&lt;br /&gt;WHERE&amp;nbsp;idcompra = idpedidos&amp;nbsp;AND&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;idcompra = 7&lt;/span&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Puesto que la factura se generará según el id de la compra, en la consulta ponemos un valor cualquiera (7) pero después añadiremos ese parámetro como variable.&lt;br /&gt;Le damos a siguiente, añadimos todos los parámetros y le damos a terminar. Se abrirá nuestro report. Ahora vamos a añadir ese parámetro que dije antes. Pulsamos con el botón derecho sobre nuestro report y seleccionamos Edit Query. Ahí aparecerá nuestra consulta, y donde ponía 7 ahora habría que cambiarlo por&amp;nbsp;$P{idcompra}. Le damos a OK, y , estando otra vez en la pantalla principal, pulsamos el botón derecho sobre Parameters y añadimos uno llamado idcompra. Hecho esto podemos probar el resultado dándole a Preview.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Ya esta terminado nuestro informe. Ahora hay que usarlo en nuestro código. Al finalizar se ha generado un archivo .jrxml y otro .jasper. &amp;nbsp;Estos se deben copiar en nuestro proyecto, dentro de webpages. Ahora creamos un jsp en el proyecto llamado report.jsp, que contendrá el siguiente código:&lt;/span&gt;&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; font-weight: normal; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page import="java.util.Map"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.util.HashMap"%&amp;gt;&lt;br /&gt;&amp;lt;%@ page language="java" import="net.sf.jasperreports.engine.*,net.sf.jasperreports.engine.export.*" %&amp;gt;&lt;br /&gt;&amp;lt;%@ page import="java.sql.*,java.io.*" %&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt; String filename = request.getParameter("filename");&lt;br /&gt; String reporttype = request.getParameter("reporttype");&lt;br /&gt;Class.forName("com.mysql.jdbc.Driver").newInstance();&lt;br /&gt;&lt;br /&gt; &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff6600; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/tienda", "root", "forman");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; System.out.println("Connection Established");&lt;br /&gt; String path = application.getRealPath("/");&lt;br /&gt;&lt;br /&gt; Map parameters = new HashMap();&lt;br /&gt; &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;parameters.put("idcompra",request.getParameter("idcompra"));&lt;/span&gt;&lt;br /&gt; JasperPrint jasperPrint = JasperFillManager.fillReport(path + "/" + filename, &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: green; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;parameters&lt;/span&gt;, conn);&lt;br /&gt;&lt;br /&gt; System.out.println("Report Created...");&lt;br /&gt;OutputStream ouputStream = response.getOutputStream();&lt;br /&gt;JRExporter exporter = null;&lt;br /&gt;if ("pdf".equalsIgnoreCase(reporttype)) {&lt;br /&gt; response.setContentType("application/pdf");&lt;br /&gt; exporter = new JRPdfExporter();&lt;br /&gt; exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);&lt;br /&gt; exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);&lt;br /&gt; } else if ("rtf".equalsIgnoreCase(reporttype)) {&lt;br /&gt; response.setContentType("application/rtf");&lt;br /&gt; response.setHeader("Content-Disposition", "inline; filename=\"file.rtf\"");&lt;br /&gt;exporter = new JRRtfExporter();&lt;br /&gt; exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);&lt;br /&gt; exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);&lt;br /&gt; } else if ("html".equalsIgnoreCase(reporttype)) {&lt;br /&gt; exporter = new JRHtmlExporter();&lt;br /&gt; exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);&lt;br /&gt; exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);&lt;br /&gt; } else if ("xls".equalsIgnoreCase(reporttype)) {&lt;br /&gt; response.setContentType("application/xls");&lt;br /&gt; response.setHeader("Content-Disposition", "inline; filename=\"file.xls\"");&lt;br /&gt;exporter = new JRXlsExporter();&lt;br /&gt; exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);&lt;br /&gt; exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);&lt;br /&gt; } else if ("csv".equalsIgnoreCase(reporttype)) {&lt;br /&gt; response.setContentType("application/csv");&lt;br /&gt; response.setHeader("Content-Disposition", "inline; filename=\"file.csv\"");&lt;br /&gt;exporter = new JRCsvExporter();&lt;br /&gt; exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);&lt;br /&gt; exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);&lt;br /&gt; }&lt;br /&gt;try {&lt;br /&gt; exporter.exportReport();&lt;br /&gt; } catch (JRException e) {&lt;br /&gt; throw new ServletException(e);&lt;br /&gt; } finally {&lt;br /&gt; if (ouputStream != null) {&lt;br /&gt; try {&lt;br /&gt; ouputStream.close();&lt;br /&gt; } catch (IOException ex) {&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;%&amp;gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En él habrá que cambiar la configuración de nuestra base de datos (color naranja) y el/los parametro/s que hayamos puesto en la consulta (color rojo), si no hay parámetros se pone null (color verde).&lt;br /&gt;Ahora hay que descomprimir el archivo que descargamos anteriormente con todas las librerías. Se añade al proyecto el jasperreport-4.5.0.jar y después todas los .jar que hay en la carpeta lib.&lt;br /&gt;Por último queda llamar a nuestro jasper. Imaginemos que en la tienda online, cuando el usuario confirma el pedido, le aparece un link donde mostrarle un pdf con la factura de su pedido. En el código de este link sería:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; font-weight: normal; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;%&amp;gt;&lt;br /&gt; &amp;lt;p style="color:green"&amp;gt;Pedido tramitado correctamente. Nos pondremos en contacto con usted para informarle de todo el proceso. Puede ver su factura &amp;lt;a href="report.jsp?filename=&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: green; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;report2.jasper&lt;/span&gt;&amp;amp;reporttype=pdf&amp;amp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;paramID=&amp;lt;%=request.getAttribute("idCompra").toString()%&amp;gt;&lt;/span&gt;"&amp;gt;aquí&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;%&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; font-weight: normal; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En el verde hay que poner el report que creamos y en el rojo ponemos el parámetro que creamos y su valor.&lt;/div&gt;&lt;/h1&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-8412581417231168914?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/8412581417231168914/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/ireport-creador-de-informes.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/8412581417231168914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/8412581417231168914'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/ireport-creador-de-informes.html' title='IReport – Creador de informes'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-8516241865030731864</id><published>2012-02-12T04:57:00.000-08:00</published><updated>2012-02-12T04:57:39.650-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webservices'/><title type='text'>Web Services</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Un servicio web&amp;nbsp;es una pieza de software que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. Las ventajas de los web services son:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Ahora vamos a ver un ejemplo de uso de servicios web, haciendo el ejemplo de&amp;nbsp;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;login de usuario&lt;/strong&gt;:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-271" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Primero tenemos que crear el servicio web de usuarios, el cual va a contener todas las funciones correspondientes al usuario, en nuestro caso solo el login (aunque&amp;nbsp;también&amp;nbsp;estarían las funciones de registrar usuario, borrarlo, modificarlo, etc). Este servicio web hará uso de la clase Usuario, que es la que realmente contiene las funciones. Dicho esto, tenemos que crear un nuevo proyecto en Netbeans llamado Usuarios Webservice (New Project -&amp;gt; Java Web -&amp;gt; Web application). En el pondremos la clase MySQL que ya vimos en&amp;nbsp;&lt;a href="http://franciscovaldivia.wordpress.com/2011/12/09/modularizacion-clase-envoltorio-para-operaciones-de-bbdd/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Modularización – Clase envoltorio para operaciones de BBDD"&gt;anteriores entradas&lt;/a&gt;&amp;nbsp;y la clase Usuario, que contiene el siguiente código:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package org;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import javax.mail.Message;&lt;br /&gt;import javax.mail.MessagingException;&lt;br /&gt;import javax.mail.Session;&lt;br /&gt;import javax.mail.Transport;&lt;br /&gt;import javax.mail.internet.AddressException;&lt;br /&gt;import javax.mail.internet.InternetAddress;&lt;br /&gt;import javax.mail.internet.MimeMessage;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;public class Usuario {&lt;br /&gt; //ATRIBUTOS&lt;br /&gt; private int id;&lt;br /&gt; private String nombre;&lt;br /&gt; private String apellidos;&lt;br /&gt; private String direccion;&lt;br /&gt; private String cp;&lt;br /&gt; private String localidad;&lt;br /&gt; private String provincia;&lt;br /&gt; private String pais;&lt;br /&gt; private String telefono;&lt;br /&gt; private String alias;&lt;br /&gt; private String email;&lt;br /&gt; private String password;&lt;br /&gt; private int rol;&lt;br /&gt; private int activado;&lt;br /&gt;public Usuario(){&lt;br /&gt;}&lt;br /&gt;//CONSTRUCTORES&lt;br /&gt; public Usuario(String alias,String password){&lt;br /&gt; this.alias=alias;&lt;br /&gt; this.password=password;&lt;br /&gt; }&lt;br /&gt;public Usuario(String nombre, String apellidos, String direccion, String cp, String localidad, String provincia, String pais, String telefono, String alias, String email, String password, int rol, int activado) {&lt;br /&gt; this.nombre = nombre;&lt;br /&gt; this.apellidos = apellidos;&lt;br /&gt; this.direccion = direccion;&lt;br /&gt; this.cp = cp;&lt;br /&gt; this.localidad = localidad;&lt;br /&gt; this.provincia = provincia;&lt;br /&gt; this.pais = pais;&lt;br /&gt; this.telefono = telefono;&lt;br /&gt; this.alias = alias;&lt;br /&gt; this.email = email;&lt;br /&gt; this.password = password;&lt;br /&gt; this.rol = rol;&lt;br /&gt; this.activado = activado;&lt;br /&gt; }&lt;br /&gt;//METODOS&lt;br /&gt;/**&lt;br /&gt; * @return the id&lt;br /&gt; */&lt;br /&gt; public int getId() {&lt;br /&gt; return id;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param id the id to set&lt;br /&gt; */&lt;br /&gt; public void setId(int id) {&lt;br /&gt; this.id = id;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the nombre&lt;br /&gt; */&lt;br /&gt; public String getNombre() {&lt;br /&gt; return nombre;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param nombre the nombre to set&lt;br /&gt; */&lt;br /&gt; public void setNombre(String nombre) {&lt;br /&gt; this.nombre = nombre;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the apellidos&lt;br /&gt; */&lt;br /&gt; public String getApellidos() {&lt;br /&gt; return apellidos;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param apellidos the apellidos to set&lt;br /&gt; */&lt;br /&gt; public void setApellidos(String apellidos) {&lt;br /&gt; this.apellidos = apellidos;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the direccion&lt;br /&gt; */&lt;br /&gt; public String getDireccion() {&lt;br /&gt; return direccion;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param direccion the direccion to set&lt;br /&gt; */&lt;br /&gt; public void setDireccion(String direccion) {&lt;br /&gt; this.direccion = direccion;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the cp&lt;br /&gt; */&lt;br /&gt; public String getCp() {&lt;br /&gt; return cp;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param cp the cp to set&lt;br /&gt; */&lt;br /&gt; public void setCp(String cp) {&lt;br /&gt; this.cp = cp;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the localidad&lt;br /&gt; */&lt;br /&gt; public String getLocalidad() {&lt;br /&gt; return localidad;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param localidad the localidad to set&lt;br /&gt; */&lt;br /&gt; public void setLocalidad(String localidad) {&lt;br /&gt; this.localidad = localidad;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the provincia&lt;br /&gt; */&lt;br /&gt; public String getProvincia() {&lt;br /&gt; return provincia;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param provincia the provincia to set&lt;br /&gt; */&lt;br /&gt; public void setProvincia(String provincia) {&lt;br /&gt; this.provincia = provincia;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the pais&lt;br /&gt; */&lt;br /&gt; public String getPais() {&lt;br /&gt; return pais;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param pais the pais to set&lt;br /&gt; */&lt;br /&gt; public void setPais(String pais) {&lt;br /&gt; this.pais = pais;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the telefono&lt;br /&gt; */&lt;br /&gt; public String getTelefono() {&lt;br /&gt; return telefono;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param telefono the telefono to set&lt;br /&gt; */&lt;br /&gt; public void setTelefono(String telefono) {&lt;br /&gt; this.telefono = telefono;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the alias&lt;br /&gt; */&lt;br /&gt; public String getAlias() {&lt;br /&gt; return alias;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param alias the alias to set&lt;br /&gt; */&lt;br /&gt; public void setAlias(String alias) {&lt;br /&gt; this.alias = alias;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the email&lt;br /&gt; */&lt;br /&gt; public String getEmail() {&lt;br /&gt; return email;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param email the email to set&lt;br /&gt; */&lt;br /&gt; public void setEmail(String email) {&lt;br /&gt; this.email = email;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the password&lt;br /&gt; */&lt;br /&gt; public String getPassword() {&lt;br /&gt; return password;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param password the password to set&lt;br /&gt; */&lt;br /&gt; public void setPassword(String password) {&lt;br /&gt; this.password = password;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the rol&lt;br /&gt; */&lt;br /&gt; public int getRol() {&lt;br /&gt; return rol;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param rol the rol to set&lt;br /&gt; */&lt;br /&gt; public void setRol(int rol) {&lt;br /&gt; this.rol = rol;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the activado&lt;br /&gt; */&lt;br /&gt; public int getActivado() {&lt;br /&gt; return activado;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param activado the activado to set&lt;br /&gt; */&lt;br /&gt; public void setActivado(int activado) {&lt;br /&gt; this.activado = activado;&lt;br /&gt; }&lt;br /&gt;public int login(){&lt;br /&gt; int existe=0;&lt;br /&gt; try{&lt;br /&gt; MySQL mysql=new MySQL("tienda","//localhost","root", "forman");&lt;br /&gt;mysql.inicializarBD();&lt;br /&gt;//consulta&lt;br /&gt; mysql.consultar("SELECT idusuarios,rol FROM usuarios WHERE alias='"+alias+"' AND password='"+password+"' AND activado=1;");&lt;br /&gt; //ejecutar la consulta&lt;br /&gt; ResultSet rst = mysql.getResultSet();&lt;br /&gt;if(rst.next()){ //Existe&lt;br /&gt; existe=1;&lt;br /&gt; id=rst.getInt("idusuarios");&lt;br /&gt; }else{ //No existe&lt;br /&gt; id=-1;&lt;br /&gt; }&lt;br /&gt; mysql.cerrarBD();&lt;br /&gt;}catch(SQLException err){&lt;br /&gt; System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt; }finally{&lt;br /&gt; return id;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Ahora sí, creamos el servicio web. Para ello le damos al segundo botón del ratón sobre nuestro proyecto, y elegimos New -&amp;gt; Web Service . Le damos nombre UsuarioWS y le especificamos el mismo paquete donde se han guardado las otras clases. En este nuevo archivo que se ha creado, se pueden añadir las funciones escribiendo el código manualmente, o mediante el Design, que es una pestaña que aparece en la parte de arriba. Como se ha dicho, este web service se limitará a llamar a la clase usuario y a la función login:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package org;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import javax.jws.WebService;&lt;br /&gt;import javax.jws.WebMethod;&lt;br /&gt;import javax.jws.WebParam;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;@WebService(serviceName = "UsuarioWS")&lt;br /&gt;public class UsuarioWS {&lt;br /&gt;/** This is a sample web service operation */&lt;br /&gt;&lt;br /&gt; @WebMethod(operationName = "login")&lt;br /&gt; public int login(String alias,String password) {&lt;br /&gt; Usuario usu=new Usuario(alias,password);&lt;br /&gt; int id=usu.login();&lt;br /&gt; return id;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Hecho esto, ya tenemos la funcionalidad del usuario lista. Ahora se debe compilar y después hacer el ‘Test Web Service’ al archivo UsuarioWS que esta en la carpeta que se generó ‘Web Services’. Se abrirá una nueva ventana en el navegador donde aparecerán las funciones de ese servicio web. Es muy importante comprobar que todo funciona correctamente, antes de que un cliente haga uso de este webservice, que es nuestro siguiente paso.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Imaginemos que este es un proyecto muy grande y el trabajo esta dividido en varios departamentos. En tu departamento, te han asignado la tarea de hacer el servicio web de usuarios y que funcione correctamente. En otro departamento, la tarea que tienen es hacer un aplicación cliente, que haga uso de este webservice. Esta es una de las ventajas de los servicios web: este departamento lo único que tiene que saber es que funciones contiene el servicio web y que parámetros se les pasa, y ellos podrán usarlas como quieran, incluso con lenguajes y arquitectura distintas.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En la aplicación cliente (que será un nuevo proyecto) se tiene que añadir el webservice. Para ello se hace click en el segundo botón New -&amp;gt; Web Service Client. Aquí se añade el proyecto Usuario Webservice creado anteriormente, y se empaqueta en un paquete distinto llamado wsUsuario.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;El código del cliente tendría un formulario de usuario y contraseña, que cuando se rellena manda al servlet que es el que hará uso de la función login del servicio web. Para añadir esta función al código hay que pulsar con el segundo botón sobre el código y darle a Insert Code -&amp;gt; Call Web Service Operation, y seleccionar la función login. Ahora en el código habría que usar esta llamada. Se quedaría así:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;package org;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.annotation.WebServlet;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;import javax.servlet.http.HttpSession;&lt;br /&gt;import javax.xml.ws.WebServiceRef;&lt;br /&gt;import wsUsuario.UsuarioWS_Service;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;@WebServlet(name = "IniciarSesionServlet", urlPatterns = {"/IniciarSesionServlet"})&lt;br /&gt;public class IniciarSesionServlet extends HttpServlet {&lt;br /&gt; @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/localhost_8080/Ejercicio_4.2._-_Usuarios_WebService/UsuarioWS.wsdl")&lt;br /&gt; private UsuarioWS_Service service_1;&lt;br /&gt;/**&lt;br /&gt; * Processes requests for both HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; methods.&lt;br /&gt; * @param request servlet request&lt;br /&gt; * @param response servlet response&lt;br /&gt; * @throws ServletException if a servlet-specific error occurs&lt;br /&gt; * @throws IOException if an I/O error occurs&lt;br /&gt; */&lt;br /&gt; protected void processRequest(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt; throws ServletException, IOException {&lt;br /&gt; response.setContentType("text/html;charset=UTF-8");&lt;br /&gt; PrintWriter out = response.getWriter();&lt;br /&gt; try{&lt;br /&gt; ResultSet rst;&lt;br /&gt; String alias,password;&lt;br /&gt;alias=request.getParameter("txtNombre");&lt;br /&gt; password=request.getParameter("txtPassword");&lt;br /&gt;&lt;br /&gt; //Encriptacion del password&lt;br /&gt; StringBuffer passwordEncriptado=Encriptar.encripta(password);&lt;br /&gt;&lt;br /&gt; &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff6600; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;int id=login(alias,passwordEncriptado.toString());&lt;/span&gt;&lt;br /&gt;HttpSession sesion=request.getSession(true);&lt;br /&gt; if(id!=-1){ //Existe&lt;br /&gt; sesion.setAttribute("idLogeado", id);&lt;br /&gt; sesion.setAttribute("nombreLogeado", alias);&lt;br /&gt;&lt;br /&gt;request.getRequestDispatcher( "/index.jsp" ).forward( request, response );&lt;br /&gt; }catch(Exception ex){&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; // &amp;lt;editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."&amp;gt;&lt;br /&gt; /**&lt;br /&gt; * Handles the HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; method.&lt;br /&gt; * @param request servlet request&lt;br /&gt; * @param response servlet response&lt;br /&gt; * @throws ServletException if a servlet-specific error occurs&lt;br /&gt; * @throws IOException if an I/O error occurs&lt;br /&gt; */&lt;br /&gt; @Override&lt;br /&gt; protected void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt; throws ServletException, IOException {&lt;br /&gt; processRequest(request, response);&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * Handles the HTTP &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; method.&lt;br /&gt; * @param request servlet request&lt;br /&gt; * @param response servlet response&lt;br /&gt; * @throws ServletException if a servlet-specific error occurs&lt;br /&gt; * @throws IOException if an I/O error occurs&lt;br /&gt; */&lt;br /&gt; @Override&lt;br /&gt; protected void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt; throws ServletException, IOException {&lt;br /&gt; processRequest(request, response);&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * Returns a short description of the servlet.&lt;br /&gt; * @return a String containing servlet description&lt;br /&gt; */&lt;br /&gt; @Override&lt;br /&gt; public String getServletInfo() {&lt;br /&gt; return "Short description";&lt;br /&gt; }// &amp;lt;/editor-fold&amp;gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;private int login(java.lang.String arg0, java.lang.String arg1) {&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; wsUsuario.UsuarioWS port = service_1.getUsuarioWSPort();&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; return port.login(arg0, arg1);&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; } &lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-8516241865030731864?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/8516241865030731864/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/web-services.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/8516241865030731864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/8516241865030731864'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/web-services.html' title='Web Services'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-7693025738003449233</id><published>2012-02-12T04:54:00.000-08:00</published><updated>2012-02-12T04:54:19.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Serialización'/><title type='text'>Uso de XML, serializar y deserializar</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;XML es un lenguajes de modelado de datos o, lo que es lo mismo, es un lenguaje que permite definir un modelo de datos. Se podría decir que es un fichero que guarda los datos como si fuera una base de datos y se utiliza cuando se necesite. Se puede usar para que una aplicación use datos de otra, como un RSS. Por ejemplo, un archivo xml sería:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;?XML&amp;gt;&lt;br /&gt;&amp;lt;clientes&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;usuario&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;nombre&amp;gt;Juan&amp;lt;/nombre&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/usuario&amp;gt;&lt;br /&gt;&amp;lt;/cliente&amp;gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SAX es una librería estandar en Java que permite el manejo de archivos para serializar y deserializar los ficheros XML. Estos dos conceptos se definirían de esta forma:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Serialización: Coge objetos de memoria y los registra en un fichero físico.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Deserialización: Lee el fichero interpretando los nodos y los pasa a objetos.(continuar, poniendo código de serialización y deserialización)&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Veamos ahora un ejemplo:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span id="more-256" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Tenemos una web, donde se suben imágenes y los usuarios las votan. Queremos que, cada&amp;nbsp;vez que un usuario vota, en un archivo&amp;nbsp;XML se guarden las 5 más votadas para luego mostrarlas.&amp;nbsp; Para ello, en primer lugar necesitamos la clase Imagen:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;package ria;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;public class Imagen {&lt;br /&gt; //ATRIBUTOS&lt;br /&gt; private int id;&lt;br /&gt; private String nombre;&lt;br /&gt; private String ruta;&lt;br /&gt; private String descripcion;&lt;br /&gt; private int votos;&lt;br /&gt;&lt;br /&gt; public Imagen(){&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; public Imagen(String nombre,String ruta,String descripcion,int votos){&lt;br /&gt; this.nombre=nombre;&lt;br /&gt; this.ruta=ruta;&lt;br /&gt; this.descripcion=descripcion;&lt;br /&gt; this.votos=votos;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the id&lt;br /&gt; */&lt;br /&gt; public int getId() {&lt;br /&gt; return id;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param id the id to set&lt;br /&gt; */&lt;br /&gt; public void setId(int id) {&lt;br /&gt; this.id = id;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the nombre&lt;br /&gt; */&lt;br /&gt; public String getNombre() {&lt;br /&gt; return nombre;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param nombre the nombre to set&lt;br /&gt; */&lt;br /&gt; public void setNombre(String nombre) {&lt;br /&gt; this.nombre = nombre;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the ruta&lt;br /&gt; */&lt;br /&gt; public String getRuta() {&lt;br /&gt; return ruta;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param ruta the ruta to set&lt;br /&gt; */&lt;br /&gt; public void setRuta(String ruta) {&lt;br /&gt; this.ruta = ruta;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the descripcion&lt;br /&gt; */&lt;br /&gt; public String getDescripcion() {&lt;br /&gt; return descripcion;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param descripcion the descripcion to set&lt;br /&gt; */&lt;br /&gt; public void setDescripcion(String descripcion) {&lt;br /&gt; this.descripcion = descripcion;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the votos&lt;br /&gt; */&lt;br /&gt; public int getVotos() {&lt;br /&gt; return votos;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param votos the votos to set&lt;br /&gt; */&lt;br /&gt; public void setVotos(int votos) {&lt;br /&gt; this.votos = votos;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int subirImagen(){&lt;br /&gt; int s;&lt;br /&gt; MySQL mysql=new MySQL("flickr","//localhost","root", "forman");&lt;br /&gt; mysql.inicializarBD();&lt;br /&gt; s=mysql.insertar("INSERT INTO imagenes (nombre,ruta,descripcion,votos,idUsuario) VALUES ('"+getNombre()+"','"+getRuta()+"','"+getDescripcion()+"','0','"+getId()+"');");&lt;br /&gt; mysql.cerrarBD();&lt;br /&gt;&lt;br /&gt; return s;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;También necesitamos la clase que va a serializar las imagenes (ImagenSerializator.java). En esta se especifica que imágenes va a contener el XML, que son el resultado de una consulta:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package ria;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.List;&lt;br /&gt;import javax.xml.parsers.DocumentBuilder;&lt;br /&gt;import javax.xml.parsers.DocumentBuilderFactory;&lt;br /&gt;import javax.xml.parsers.ParserConfigurationException;&lt;br /&gt;import org.w3c.dom.Document;&lt;br /&gt;import org.w3c.dom.Element;&lt;br /&gt;import org.w3c.dom.Text;&lt;br /&gt;import com.sun.org.apache.xml.internal.serialize.OutputFormat;&lt;br /&gt;import com.sun.org.apache.xml.internal.serialize.XMLSerializer;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import ria.MySQL;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;public class ImagenSerializator {&lt;br /&gt; String path;&lt;br /&gt; List myData;&lt;br /&gt; Document dom;&lt;br /&gt;&lt;br /&gt; public ImagenSerializator(String path) {&lt;br /&gt; myData = new ArrayList();&lt;br /&gt; this.path = path;&lt;br /&gt; init();&lt;br /&gt; createDocument();&lt;br /&gt; }&lt;br /&gt; private void init(){&lt;br /&gt; try{&lt;br /&gt; MySQL mysql=new MySQL("flickr","//localhost","root","forman");&lt;br /&gt; ResultSet rs;&lt;br /&gt; mysql.inicializarBD();&lt;br /&gt; mysql.consultar("SELECT nombre,ruta,descripcion,votos FROM imagenes ORDER BY votos DESC LIMIT 5");&lt;br /&gt; rs=mysql.getResultSet();&lt;br /&gt; while(rs.next()){&lt;br /&gt; myData.add(new Imagen(rs.getString("nombre"),rs.getString("ruta"), rs.getString("descripcion"),rs.getInt("votos")));&lt;br /&gt; }&lt;br /&gt; }catch(SQLException ex){&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; private void createDocument() {&lt;br /&gt;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();&lt;br /&gt; try {&lt;br /&gt; DocumentBuilder db = dbf.newDocumentBuilder();&lt;br /&gt;dom = db.newDocument();&lt;br /&gt;}catch(ParserConfigurationException pce) {&lt;br /&gt; System.out.println("Error while trying to instantiate DocumentBuilder " + pce);&lt;br /&gt; System.exit(1);&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void createDOMTree(){&lt;br /&gt;Element rootEle = dom.createElement("galeria");&lt;br /&gt; dom.appendChild(rootEle);&lt;br /&gt;Iterator it = myData.iterator();&lt;br /&gt; while(it.hasNext()) {&lt;br /&gt; Imagen b = (Imagen)it.next();&lt;br /&gt;Element ImagenEle = createImagenElement(b);&lt;br /&gt; rootEle.appendChild(ImagenEle);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private Element createImagenElement(Imagen b){&lt;br /&gt;Element ImagenElem = dom.createElement("imagen");&lt;br /&gt; //StockEle.setAttribute("id", b.getID());&lt;br /&gt;Element nombreElem = dom.createElement("nombre");&lt;br /&gt; Text nombreText = dom.createTextNode(b.getNombre());&lt;br /&gt; nombreElem.appendChild(nombreText);&lt;br /&gt; ImagenElem.appendChild(nombreElem);&lt;br /&gt;Element rutaElem = dom.createElement("ruta");&lt;br /&gt; Text rutaText = dom.createTextNode(b.getRuta());&lt;br /&gt; rutaElem.appendChild(rutaText);&lt;br /&gt; ImagenElem.appendChild(rutaElem);&lt;br /&gt;Element descripcionElem = dom.createElement("descripcion");&lt;br /&gt; Text descripcionText = dom.createTextNode(b.getDescripcion());&lt;br /&gt; descripcionElem.appendChild(descripcionText);&lt;br /&gt; ImagenElem.appendChild(descripcionElem);&lt;br /&gt;&lt;br /&gt; Element votosElem = dom.createElement("votos");&lt;br /&gt; Text votosText = dom.createTextNode(String.valueOf(b.getVotos()));&lt;br /&gt; votosElem.appendChild(votosText);&lt;br /&gt; ImagenElem.appendChild(votosElem);&lt;br /&gt;return ImagenElem;&lt;br /&gt;}&lt;br /&gt;public void Serialization(){&lt;br /&gt;try&lt;br /&gt; {&lt;br /&gt; OutputFormat format = new OutputFormat(dom);&lt;br /&gt; format.setIndenting(true);&lt;br /&gt;XMLSerializer serializer = new XMLSerializer(&lt;br /&gt; new FileOutputStream(new File(path + "/galeriaMIO.xml")), format);&lt;br /&gt;serializer.serialize(dom);&lt;br /&gt;} catch(IOException ie) {&lt;br /&gt; ie.printStackTrace();&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Ahora, cuando se quiera crear el archivo XML, es decir, cuando el usuario vota, se llamaría a serializar.jsp, que contiene el siguiente código:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page import="ria.ImagenSerializator"%&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;//Context Path&lt;br /&gt;String path = application.getRealPath("/");&lt;br /&gt;//Instance&lt;br /&gt;ImagenSerializator stockSer = new ImagenSerializator(path);&lt;br /&gt;//Prepare tree&lt;br /&gt;stockSer. createDOMTree();&lt;br /&gt;//Save to file&lt;br /&gt;stockSer.Serialization();&lt;br /&gt;request.getRequestDispatcher( "/index.jsp" ).forward( request, response );&lt;br /&gt;%&amp;gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;El archivo XML se guarda por defecto &amp;nbsp;build/web, dentro del proyecto.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Ahora, cuando el usuario quiera ver el top five de imágenes más votadas, deserializará este XML y lo mostrará en pantalla. Para ello haremos uso de dos clases que guardarán cada uno de los elementos del XML y lo dejarán listos para poder manipularlos. A estas clases no es necesario que le hagas ningún cambio, simplemente añádelas a tu proyecto y listo:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;MyElement.java&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package ria;&lt;br /&gt;import org.xml.sax.Attributes;&lt;br /&gt;&lt;br /&gt;public class MyElement implements java.io.Serializable {&lt;br /&gt;&lt;br /&gt; String uri;&lt;br /&gt; String localName;&lt;br /&gt; String qName;&lt;br /&gt; String value=null;&lt;br /&gt;&lt;br /&gt; Attributes attributes;&lt;br /&gt;&lt;br /&gt; public MyElement() {}&lt;br /&gt;&lt;br /&gt; public MyElement(String uri, String localName, String qName, Attributes attributes) {&lt;br /&gt; this.uri = uri;&lt;br /&gt; this.localName = localName;&lt;br /&gt; this.qName = qName;&lt;br /&gt; this.attributes = attributes;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getUri() {&lt;br /&gt; return uri;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getLocalName() {&lt;br /&gt; return localName;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getQname() {&lt;br /&gt; return qName;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public Attributes getAttributes() {&lt;br /&gt; return attributes;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getValue() {&lt;br /&gt; return value;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void setValue(String value) {&lt;br /&gt; this.value = value;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;MySAXParseBean.java&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package ria;&lt;br /&gt;import java.io.*;&lt;br /&gt;import java.util.*;&lt;br /&gt;import org.xml.sax.*;&lt;br /&gt;import org.xml.sax.helpers.DefaultHandler;&lt;br /&gt;import javax.xml.parsers.SAXParserFactory;&lt;br /&gt;import javax.xml.parsers.ParserConfigurationException;&lt;br /&gt;import javax.xml.parsers.SAXParser;&lt;br /&gt;public class MySAXParseBean extends DefaultHandler implements java.io.Serializable {&lt;br /&gt; private String text;&lt;br /&gt; private Vector vector = new Vector();&lt;br /&gt; private MyElement current = null;&lt;br /&gt;&lt;br /&gt; public MySAXParseBean() {}&lt;br /&gt;&lt;br /&gt; public Vector parse(String filename) throws Exception {&lt;br /&gt;&lt;br /&gt; SAXParserFactory spf = SAXParserFactory.newInstance();&lt;br /&gt; spf.setValidating(false);&lt;br /&gt;&lt;br /&gt; SAXParser saxParser = spf.newSAXParser();&lt;br /&gt;&lt;br /&gt; // create an XML reader&lt;br /&gt; XMLReader reader = saxParser.getXMLReader();&lt;br /&gt;&lt;br /&gt; FileReader file = new FileReader(filename);&lt;br /&gt;&lt;br /&gt; // set handler&lt;br /&gt; reader.setContentHandler(this);&lt;br /&gt;&lt;br /&gt; // call parse on an input source&lt;br /&gt; reader.parse(new InputSource(file));&lt;br /&gt;&lt;br /&gt; return vector;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // receive notification of the beginning of an element&lt;br /&gt; public void startElement (String uri, String name, String qName, Attributes atts) {&lt;br /&gt;&lt;br /&gt; current = new MyElement(uri, name, qName, atts);&lt;br /&gt;&lt;br /&gt; vector.addElement(current);&lt;br /&gt; text = new String();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // receive notification of the end of an element&lt;br /&gt; public void endElement (String uri, String name, String qName) {&lt;br /&gt;&lt;br /&gt; if(current != null &amp;amp;&amp;amp; text != null) {&lt;br /&gt; current.setValue(text.trim());&lt;br /&gt; }&lt;br /&gt; current = null;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // receive notification of character data&lt;br /&gt; public void characters (char ch[], int start, int length) {&lt;br /&gt;&lt;br /&gt; if(current != null &amp;amp;&amp;amp; text != null) {&lt;br /&gt; String value = new String(ch, start, length);&lt;br /&gt; text += value;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Y ya por último, en verTopFive.jsp, se mostrarán las imágenes y sus votos, haciendo uso de MyElement:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page import="ria.MySQL"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.sql.ResultSet"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="ria.ImagenSerializator"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="ria.MyElement"%&amp;gt;&lt;br /&gt;&amp;lt;%@ page import="java.util.*" %&amp;gt;&lt;br /&gt;&amp;lt;%@ page import="org.*" %&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Top Five Galeria&amp;lt;/title&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt; &amp;lt;jsp:useBean id="saxparser" class="ria.MySAXParseBean" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;HttpSession sesion=request.getSession(false);&lt;br /&gt;if(sesion.getAttribute("idLogeado")!=null){&lt;br /&gt; String idLogeado=sesion.getAttribute("idLogeado").toString();&lt;br /&gt; int iniciado=1;&lt;br /&gt; String path = application.getRealPath("/");&lt;br /&gt; Collection stocks = saxparser.parse(path + "galeriaMIO.xml");&lt;br /&gt;Iterator ir = stocks.iterator();&lt;br /&gt; //mysql.consultar("SELECT idimagenes,nombre,ruta,descripcion,votos,idUsuario FROM imagenes;");&lt;br /&gt; //rst=mysql.getResultSet();&lt;br /&gt; %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;h3&amp;gt;Top 5&amp;lt;/h3&amp;gt;&lt;br /&gt; &amp;lt;table border="1"&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&lt;br /&gt; &amp;lt;td&amp;gt;&lt;br /&gt; &amp;lt;h4&amp;gt;Imagen&amp;lt;/h4&amp;gt;&lt;br /&gt; &amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;td&amp;gt;&lt;br /&gt; &amp;lt;h4&amp;gt;Votos&amp;lt;/h4&amp;gt;&lt;br /&gt; &amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; int contador=0;&lt;br /&gt; while(ir.hasNext()) {&lt;br /&gt; MyElement element = (MyElement) ir.next();&lt;br /&gt; String tag = element. getQname();&lt;br /&gt;&lt;br /&gt; if(tag.equals("ruta")) { %&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt; &amp;lt;img src="./imagenes/&amp;lt;%= element.getValue() %&amp;gt;" &amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; } else if (tag.equals("votos")) {&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;td&amp;gt;&lt;br /&gt; &amp;lt;%= element.getValue() %&amp;gt;&lt;br /&gt; &amp;lt;/td&amp;gt;&lt;br /&gt; &amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;a href="index.jsp"&amp;gt;Volver&amp;lt;/a&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt;}else{&lt;br /&gt; %&amp;gt;&lt;br /&gt; No estas logeado para entrar en esta página. &amp;lt;a href="index.jsp"&amp;gt;Inicia sesión&amp;lt;/a&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }&lt;br /&gt; %&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-7693025738003449233?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/7693025738003449233/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/uso-de-xml-serializar-y-deserializar.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/7693025738003449233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/7693025738003449233'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/uso-de-xml-serializar-y-deserializar.html' title='Uso de XML, serializar y deserializar'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-7648336617974108487</id><published>2012-02-12T04:50:00.001-08:00</published><updated>2012-02-12T04:50:44.335-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Colecciones'/><title type='text'>Colecciones</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;El lenguaje Java pone a nuestra disposición, gracias a la API Collections, una serie de clases destinadas a la creación de estructuras de datos. Existen 6 tipos:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Collection: Esta interface representa un grupo general de objetos, donde es posible que el grupo contenga objetos duplicados.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Set: No hay elementos repetidos. Puede estar o no ordenada. (HashSet y LinkedHashSet).&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SortedSet: Conjunto de elementos en orden ascendente natural o definido por un objeto Comparator (TreeSet).&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;List: El orden de los elementos es relevante. Puede tener elementos repetidos. (ArrayList, LinkedList y Vector).&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Map: Estructura de datos en parejas clave/valor, lo que permite localizar un valor en función de una clave dada (HashMap y Hashtable).&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SortedMap: Elementos en orden ascendente natural o definido por un objeto Comparator (TreeMap).&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Veamos ahora más detenidamente, las clases más utilizadas:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-275" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ArrayList – Listas indexadas:&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Es la implementación de un array redimensionable de la interface List.&amp;nbsp;Implementa operaciones de listado.&amp;nbsp;Permite valores null.&amp;nbsp;También provee métodos para manipular el tamaño del array que se utiliza internamente para guardar la lista.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Cada instancia del ArrayList tiene una capacidad.&amp;nbsp;La capacidad es el tamaño del array utilizado para guardar los elementos en la lista.&amp;nbsp;Es, como mínimo, del tamaño de la lista.&amp;nbsp;Conforme se agregan elemento al ArrayList, su capacidad crece automáticamente.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Antes de utilizar la clase ArrayList es necesario realizar el import correspondiente:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;import java.util.ArrayList;&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para crear un nuevo ArrayList utilizamos el siguiente código:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;ArrayList lista = new ArrayList();&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Si se desea recorrer el contenido del ArrayList, utilizamos un iterador:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;Iterator i_lista = lista.iterator();&lt;br /&gt;//Mientras que el iterador tenga un proximo elemento&lt;br /&gt;while( i_lista.hasNext() ) {&lt;br /&gt;System.out.println(iter.next());&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Recordar que se debe realizar el import del Iterator para que pueda ser utilizado:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;import java.util.Iterator;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;LinkedList – Listas enlazadas&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;LinkedList, al igual que ArrayList es una implementación de la interface List.&amp;nbsp;Implementa operaciones de listado.&amp;nbsp;Además de implementar la interface List, esta clase provee métodos para obtener (get), eliminar(remove) e insertar (insert) elementos al principio y fin de la lista.&amp;nbsp;Estas operaciones permiten a las listas enlazadas ser utilizadas como una pila (stack), o colas doblemente enlazadas.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Es importante mencionar que una lista enlazada es una estructura posicional, es decir, que importa donde estas situado en cada momento. Al método&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;add&lt;/em&gt;&amp;nbsp;de la lista añade el elemento al final de la lista, para colocarlo en una posición determinada debes usar un Iterator.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Utilizamos el siguiente import para utilizar la clase LinkedList:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;import java.util.LinkedList;&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para declarar un objeto de tipo LinkedList lo hacemos de la siguiente manera:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;LinkedList nombre = new LinkedList ();&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para agregar un elemento a la LinkedList lo hacemos de la siguiente manera:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;nombre.add(elemento);&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Por ejemplo:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;Lista.add(“Elemento 1”);&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Si deseamos recorrer el contenido de la LinkedList, lo hacemos a través de un iterador.&amp;nbsp;Siempre recordar que se debe incluir el import:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;import java.util.Iterator;&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;y con el siguiente código recorremos los elementos:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;Iterator i_linkedlist = linked_list.iterator();&lt;br /&gt;//Mientras que el iterador tenga un proximo elemento&lt;br /&gt;while( i_linkedlist.hasNext() ) {&lt;br /&gt;System.out.println(i_linkedlist.next());&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Hashset – conjuntos indexados&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esta clase implementa la interface Set, en conjunto con una table hash(actualmente es una instancia a HashMap).&amp;nbsp;Este tipo de clase no garantiza que los elementos van a permanecer ordenados durante su uso. Permite elementos null.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esta clase ofrece un funcionamiento constante para las operaciones básicas (add, remove, contains y size).&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esta implementación no se encuentra sincronizada.&amp;nbsp;Esto quiere decir que si múltiples hilos acceden a colocar elemento concurrentemente, y al menos uno de esos elementos modifica el Set, debe ser sincronizado externamente.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En el siguiente ejemplo se mostrará como manipular elementos utilizando un HashSet.&amp;nbsp;Estos conjuntos de datos tienen la propiedad de que no se pueden guardar dos elementos con el mismo valor.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;El import para la clase HashSet es el siguiente:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;import java.util.HashSet;&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Primero creamos nuestro objeto de tipo HashSet:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;Set hs = new HashSet();&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Luego cargamos el conjunto de datos:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;hs.add("Erick");&lt;br /&gt;hs.add("Byron");&lt;br /&gt;hs.add("Byron"); // Los elementos solo pueden estar una vez&lt;br /&gt;hs.add("Gerson");&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Cuando se agrega un elemento repetido (Byron), este elemento solo aparecerá 1 vez.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para recorrer nuestro objeto debemos implementar un iterador:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;Iterator i_hs = hs.iterator();&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Utilizando el método .next() nos movemos a través del iterador:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;while (iter.hasNext())&lt;br /&gt;System.out.println(iter.next());&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Treeset – Árboles&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esta clase implementa la interface Set, basada en una instancia de TreeMap.&amp;nbsp;Esta clase garantiza que el ordenamiento de los elementos será en orden ascendente, ordenando de acuerdo al orden natural de los elementos, o por el comparador dado en el momento de creación, dependiendo de qué constructor se utilice.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esta implementación provee método del tipo agregar, eliminar y contiene (contains).&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esta implementación al igual que Hashset, no está sincronizada.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;La clase TreeSet es muy similar a la anterior,&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Hashset&lt;/em&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Monaco, Consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/code&gt;, con la diferencia de que esta vez los elementos sí están ordenados. Esta estructura es el típico árbol binario que todos conocemos.&amp;nbsp;El rendimiento es inferior al de los conjuntos indexados, aunque aquí los elementos siempre están ordenados y en algunos casos el rendimiento es mucho mejor que un Array o una lista ordenada.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Antes de utilizar esta clase debe hacerse el siguiente import:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;import java.util.TreeSet;&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para crear un nuevo objeto de tipo TreeSet se implementa el siguiente código:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;TreeSet lista2 = new TreeSet();&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Si se desea agregar elementos, se utiliza el método add de la siguiente manera:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;hs.add("Elemento 1");&lt;br /&gt;hs.add("Elemento 2");&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Los elementos que agreguemos pueden ser de cualquier tipo.&amp;nbsp;Para el ejemplo, aquí agregamos objetos de tipo String.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Al igual que las clases explicadas anteriormente, para recorrer los elementos de un objeto de Tipo TreeSet se utiliza un iterador:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;Iterator i_hs = ts.iterator();&lt;/pre&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Y mediante el método .hasNext() accedemos a los elementos:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;while (iter.hasNext())&lt;br /&gt;System.out.println(iter.next());&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-7648336617974108487?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/7648336617974108487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/colecciones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/7648336617974108487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/7648336617974108487'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/colecciones.html' title='Colecciones'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-2153253589784019744</id><published>2012-02-09T07:13:00.001-08:00</published><updated>2012-02-09T07:13:56.130-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Preparación Certificado SCJA'/><title type='text'>Podcast – Herencia en Java</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Esto es un podcast hecho por mi, que explica en que consiste la herencia en Java y donde además se citan los aspectos más importantes que hay que saber sobre la herencia para los exámenes de certificado (minuto 8:05). También se citan una serie de preguntas tipo test (minuto 11:40). En entradas posteriores, podrás encontrar el guión de este podcast.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Feed Podcast- Herencia en Java&lt;a href="http://fusion.google.com/add?feedurl=http://feeds.feedburner.com/dropbox/jUDj" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;img alt="Add to Google Reader or Homepage" height="17" src="http://buttons.googlesyndication.com/fusion/add.gif" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-color: initial; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" width="104" /&gt;&lt;/a&gt;&lt;br /&gt;Tambien lo puedes descargar&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/55535876/Podcast_Herencia_en_Java.mp3" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank" title="Podcast Herencia en Java"&gt;aquí&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-2153253589784019744?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/2153253589784019744/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/podcast-herencia-en-java.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/2153253589784019744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/2153253589784019744'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/podcast-herencia-en-java.html' title='Podcast – Herencia en Java'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-141076758249730677</id><published>2012-02-08T07:34:00.000-08:00</published><updated>2012-02-08T07:34:31.709-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subir imagen'/><title type='text'>Subir ficheros y registrarlos en la base de datos</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Este es el código para poder subir ficheros al servidor y registrarlos en la base de datos. Se necesita añadir al proyecto las siguientes librerías:&lt;br /&gt;&lt;a href="http://commons.apache.org/fileupload/" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank"&gt;http://commons.apache.org/fileupload/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://commons.apache.org/io/" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank"&gt;http://commons.apache.org/io/&lt;/a&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Tener en cuenta que a partir de la entrada anterior, todos los ejemplos aparecerá con el código modularizado. Por ejemplo, en este ejemplo existe una clase Imagen que contiene todos las funciones y métodos que manipulen las imágenes. En este código aparece el formulario para subir imagen al servidor, y una vez subida, aparecerá el formulario para darle nombre y descripción:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/--rPEixgTHHQ/TzKV2frV0YI/AAAAAAAAADg/deQAapFCcoA/s1600/subir-imagen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/--rPEixgTHHQ/TzKV2frV0YI/AAAAAAAAADg/deQAapFCcoA/s1600/subir-imagen.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;span id="more-254" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;subirImagen.jsp&lt;/strong&gt;&lt;br /&gt;&amp;lt;%@page contentType="text/html" pageEncoding="UTF-8"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt; &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt; &amp;lt;title&amp;gt;Subir imagen&amp;lt;/title&amp;gt;&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;br /&gt; &amp;lt;body&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; HttpSession sesion=request.getSession(false);&lt;br /&gt; if(sesion.getAttribute("idLogeado")!=null){&lt;br /&gt;&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;h1&amp;gt;Subir imagen&amp;lt;/h1&amp;gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &amp;lt;form method="post" enctype='multipart/form-data' action="subirImagenServlet"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; Por favor, seleccione fichero a subir&amp;lt;br/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &amp;lt;input type="file" name="fichero" /&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &amp;lt;input type="submit" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &amp;lt;/form&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; if(request.getAttribute("subido")!=null){&lt;br /&gt; if(request.getAttribute("subido").toString().equals("true")){&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;p style="color: green"&amp;gt;Fichero subido correctamente.&amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; if(request.getAttribute("rutaFichero")!=null){&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;form method="post" action="subirDatosImagenBeans.jsp"&amp;gt;&lt;br /&gt; &amp;lt;label&amp;gt;Nombre:&amp;lt;/label&amp;gt;&lt;br /&gt; &amp;lt;input type="text" id="txtNombreImagen" name="nombre"&amp;gt;&lt;br /&gt; &amp;lt;br&amp;gt;&lt;br /&gt; &amp;lt;label&amp;gt;Ruta: &amp;lt;%=request.getAttribute("rutaFichero")%&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt; &amp;lt;input type="hidden" id="txtRuta" name="ruta" value="&amp;lt;%=request.getAttribute("rutaFichero")%&amp;gt;"&amp;gt;&lt;br /&gt; &amp;lt;br&amp;gt;&lt;br /&gt; &amp;lt;label&amp;gt;Descripción:&amp;lt;/label&amp;gt;&lt;br /&gt; &amp;lt;input type="text" id="txtDescripcion" name="descripcion"&amp;gt;&lt;br /&gt; &amp;lt;input type="hidden" id="txtId" name="id" value="&amp;lt;%=sesion.getAttribute("idLogeado").toString()%&amp;gt;"&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;input type="submit" id="idEnviar" value="Enviar"&amp;gt;&lt;br /&gt; &amp;lt;/form&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }&lt;br /&gt; }else{&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;p style="color: red"&amp;gt;Error al subir fichero.&amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; if(request.getAttribute("errorInsercion")!=null){&lt;br /&gt; if(request.getAttribute("errorInsercion").toString().equals("1")){&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;p style="color: green"&amp;gt;Imagen insertada correctamente.&amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }else{&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;p style="color: red"&amp;gt;Error al insertar imagen en la base de datos.&amp;lt;/p&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;a href="index.jsp"&amp;gt;Volver&amp;lt;/a&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }else{&lt;br /&gt; %&amp;gt;&lt;br /&gt; No esta logeado para entrar en esta página. &amp;lt;a href="index.jsp"&amp;gt;Inicia sesión&amp;lt;/a&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; }&lt;br /&gt; %&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;subirImagenServlet.java&lt;/strong&gt;&lt;br /&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package ria;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.annotation.WebServlet;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;import javax.servlet.*;&lt;br /&gt;import javax.servlet.http.*;&lt;br /&gt;&lt;br /&gt;import org.apache.commons.fileupload.*;&lt;br /&gt;import org.apache.commons.fileupload.disk.DiskFileItemFactory;&lt;br /&gt;import org.apache.commons.fileupload.servlet.ServletFileUpload;&lt;br /&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;@WebServlet(name = "subirImagenServlet", urlPatterns = {"/subirImagenServlet"})&lt;br /&gt;public class subirImagenServlet extends HttpServlet {&lt;br /&gt;/**&lt;br /&gt; * Processes requests for both HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; methods.&lt;br /&gt; * @param request servlet request&lt;br /&gt; * @param response servlet response&lt;br /&gt; * @throws ServletException if a servlet-specific error occurs&lt;br /&gt; * @throws IOException if an I/O error occurs&lt;br /&gt; */&lt;br /&gt; protected void processRequest(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt; throws ServletException, IOException {&lt;br /&gt; // si se quiere comprobar que es un request de ficheros&lt;br /&gt; //boolean isMultipart = ServletFileUpload.isMultipartContent(request);&lt;br /&gt; response.setContentType("text/html");&lt;br /&gt; PrintWriter out = response.getWriter();&lt;br /&gt;&lt;br /&gt; boolean flag = false;&lt;br /&gt; String fileName = "";&lt;br /&gt; List fileItems = null;&lt;br /&gt; String path = getServletContext().getRealPath("/")+"imagenes/";&lt;br /&gt; String rutaFichero="";&lt;br /&gt;&lt;br /&gt; try {&lt;br /&gt; // construimos el objeto que es capaz de parsear la perición&lt;br /&gt; DiskFileItemFactory factory = new DiskFileItemFactory(); &lt;br /&gt;&lt;br /&gt; // tamaño por encima del cual los ficheros son escritos directamente en disco&lt;br /&gt; factory.setSizeThreshold(4096);&lt;br /&gt; // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria&lt;br /&gt; factory.setRepository(new File(path + "/"));&lt;br /&gt;&lt;br /&gt; // nuevo manejador para el fichero&lt;br /&gt; ServletFileUpload upload = new ServletFileUpload(factory);&lt;br /&gt; // maximo numero de bytes&lt;br /&gt; upload.setSizeMax(1024*512);&lt;br /&gt; // ordenamos procesar los ficheros&lt;br /&gt; fileItems = upload.parseRequest(request);&lt;br /&gt; if (fileItems == null) {&lt;br /&gt; flag=false;&lt;br /&gt; }&lt;br /&gt; // Iteramos por cada fichero&lt;br /&gt; Iterator i = fileItems.iterator();&lt;br /&gt; FileItem actual = null;&lt;br /&gt;&lt;br /&gt; if (i.hasNext()) {&lt;br /&gt;&lt;br /&gt; actual = (FileItem) i.next();&lt;br /&gt; fileName= actual.getName(); &lt;br /&gt;&lt;br /&gt; // construimos un objeto file para recuperar el trayecto completo&lt;br /&gt; File fichero = new File(fileName);&lt;br /&gt; // nos quedamos solo con el nombre y descartamos el path&lt;br /&gt; fichero = new File(path + fichero.getName());&lt;br /&gt; // escribimos el fichero colgando del nuevo path&lt;br /&gt; actual.write(fichero);&lt;br /&gt;&lt;br /&gt; flag = true;&lt;br /&gt; rutaFichero=fichero.getName();&lt;br /&gt; }&lt;br /&gt; } catch (Exception e) {&lt;br /&gt; out.println(e.getMessage());&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; //////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt; request.setAttribute("rutaFichero",rutaFichero);&lt;br /&gt; request.setAttribute("subido", flag);&lt;br /&gt; request.getRequestDispatcher( "/subirImagen.jsp" ).forward( request, response );&lt;br /&gt;&lt;br /&gt; out.close();&lt;br /&gt; }&lt;br /&gt;// &amp;lt;editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."&amp;gt;&lt;br /&gt; /**&lt;br /&gt; * Handles the HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; method.&lt;br /&gt; * @param request servlet request&lt;br /&gt; * @param response servlet response&lt;br /&gt; * @throws ServletException if a servlet-specific error occurs&lt;br /&gt; * @throws IOException if an I/O error occurs&lt;br /&gt; */&lt;br /&gt; @Override&lt;br /&gt; protected void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt; throws ServletException, IOException {&lt;br /&gt; processRequest(request, response);&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * Handles the HTTP &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; method.&lt;br /&gt; * @param request servlet request&lt;br /&gt; * @param response servlet response&lt;br /&gt; * @throws ServletException if a servlet-specific error occurs&lt;br /&gt; * @throws IOException if an I/O error occurs&lt;br /&gt; */&lt;br /&gt; @Override&lt;br /&gt; protected void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt; throws ServletException, IOException {&lt;br /&gt; processRequest(request, response);&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * Returns a short description of the servlet.&lt;br /&gt; * @return a String containing servlet description&lt;br /&gt; */&lt;br /&gt; @Override&lt;br /&gt; public String getServletInfo() {&lt;br /&gt; return "Short description";&lt;br /&gt; }// &amp;lt;/editor-fold&amp;gt;&lt;br /&gt;}&lt;br /&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;subirDatosImagenBeans.jsp&lt;/strong&gt;&lt;br /&gt;&amp;lt;jsp:useBean id="imagen" class="ria.Imagen"/&amp;gt;&lt;br /&gt;&amp;lt;jsp:setProperty name="imagen" property="*" /&amp;gt;&lt;br /&gt;&amp;lt;%@page contentType="text/html" pageEncoding="UTF-8"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt; &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt; &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;br /&gt; &amp;lt;body&amp;gt;&lt;br /&gt; &amp;lt;%&lt;br /&gt; int s=imagen.subirImagen();&lt;br /&gt; request.setAttribute("errorInsercion", s);&lt;br /&gt; request.setAttribute("subido", "true");&lt;br /&gt; request.getRequestDispatcher( "/subirImagen.jsp" ).forward( request, response );&lt;br /&gt; %&amp;gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Imagen.java&lt;/strong&gt;&lt;br /&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package ria;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;public class Imagen {&lt;br /&gt; //ATRIBUTOS&lt;br /&gt; private int id;&lt;br /&gt; private String nombre;&lt;br /&gt; private String ruta;&lt;br /&gt; private String descripcion;&lt;br /&gt; private int votos;&lt;br /&gt;&lt;br /&gt; public Imagen(){&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; public Imagen(String nombre,String ruta,String descripcion,int votos){&lt;br /&gt; this.nombre=nombre;&lt;br /&gt; this.ruta=ruta;&lt;br /&gt; this.descripcion=descripcion;&lt;br /&gt; this.votos=votos;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the id&lt;br /&gt; */&lt;br /&gt; public int getId() {&lt;br /&gt; return id;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param id the id to set&lt;br /&gt; */&lt;br /&gt; public void setId(int id) {&lt;br /&gt; this.id = id;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the nombre&lt;br /&gt; */&lt;br /&gt; public String getNombre() {&lt;br /&gt; return nombre;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param nombre the nombre to set&lt;br /&gt; */&lt;br /&gt; public void setNombre(String nombre) {&lt;br /&gt; this.nombre = nombre;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the ruta&lt;br /&gt; */&lt;br /&gt; public String getRuta() {&lt;br /&gt; return ruta;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param ruta the ruta to set&lt;br /&gt; */&lt;br /&gt; public void setRuta(String ruta) {&lt;br /&gt; this.ruta = ruta;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the descripcion&lt;br /&gt; */&lt;br /&gt; public String getDescripcion() {&lt;br /&gt; return descripcion;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param descripcion the descripcion to set&lt;br /&gt; */&lt;br /&gt; public void setDescripcion(String descripcion) {&lt;br /&gt; this.descripcion = descripcion;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @return the votos&lt;br /&gt; */&lt;br /&gt; public int getVotos() {&lt;br /&gt; return votos;&lt;br /&gt; }&lt;br /&gt;/**&lt;br /&gt; * @param votos the votos to set&lt;br /&gt; */&lt;br /&gt; public void setVotos(int votos) {&lt;br /&gt; this.votos = votos;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int subirImagen(){&lt;br /&gt; int s;&lt;br /&gt; MySQL mysql=new MySQL("flickr","//localhost","root", "forman");&lt;br /&gt; mysql.inicializarBD();&lt;br /&gt; s=mysql.insertar("INSERT INTO imagenes (nombre,ruta,descripcion,votos,idUsuario) VALUES ('"+getNombre()+"','"+getRuta()+"','"+getDescripcion()+"','0','"+getId()+"');");&lt;br /&gt; mysql.cerrarBD();&lt;br /&gt;&lt;br /&gt; return s;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-141076758249730677?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/141076758249730677/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/subir-ficheros-y-registrarlos-en-la.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/141076758249730677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/141076758249730677'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/subir-ficheros-y-registrarlos-en-la.html' title='Subir ficheros y registrarlos en la base de datos'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/--rPEixgTHHQ/TzKV2frV0YI/AAAAAAAAADg/deQAapFCcoA/s72-c/subir-imagen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-3154821185310783736</id><published>2012-02-08T07:16:00.000-08:00</published><updated>2012-02-08T07:16:57.191-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrapper'/><title type='text'>Modularización – Clase envoltorio para operaciones de BBDD</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;La modularización es un elemento clave en la programación orientada a objetos. Modularizar un proyecto consiste en ordenar los objetos(clases, atributos, métodos…) de forma que pueda ser más fácil de usar y entender para el resto de&amp;nbsp;grupo de trabajo. Aquí juega un papel muy importante las clases envoltorio (Wrapper), las cuales engloban toda la funcionalidad de esa clase, por ejemplo, la clase Float, Integer, etc.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En los ejercicios de entradas anteriores, se usaban muchas funciones que manipulan la base de datos. Lo más útil sería hacer una clase que contenga todos las funciones que hacen uso de la base de datos. Este es el código que crea la clase MySQL:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-252" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;/*&lt;br /&gt; * To change this template, choose Tools | Templates&lt;br /&gt; * and open the template in the editor.&lt;br /&gt; */&lt;br /&gt;package org;&lt;br /&gt;import java.sql.Statement;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.DriverManager;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;public class MySQL {&lt;br /&gt; //ATRIBUTOS&lt;br /&gt; private Connection conn=null;&lt;br /&gt; private Statement stm=null;&lt;br /&gt; private ResultSet rst;&lt;br /&gt; private String bbdd="";&lt;br /&gt; private String ruta="";&lt;br /&gt; private String usuario="";&lt;br /&gt; private String password="";&lt;br /&gt;&lt;br /&gt; //CONSTRUCTOR&lt;br /&gt; public MySQL(String bbdd,String ruta,String usuario,String password){&lt;br /&gt; this.bbdd=bbdd;&lt;br /&gt; this.ruta=ruta;&lt;br /&gt; this.usuario=usuario;&lt;br /&gt; this.password=password;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public ResultSet getResultSet(){&lt;br /&gt; return this.rst;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void inicializarBD(){&lt;br /&gt; try {&lt;br /&gt; //crear el driver&lt;br /&gt; Class.forName("com.mysql.jdbc.Driver").newInstance();&lt;br /&gt; //obtener el manejador&lt;br /&gt; // localhost, que en este caso es "prueba",&lt;br /&gt; //el usuario mysql es admin la password es adminadmin&lt;br /&gt; conn=DriverManager.getConnection("jdbc:mysql:"+ruta+"/"+bbdd,usuario,password);&lt;br /&gt;//obtener el statement&lt;br /&gt; stm= conn.createStatement(); &lt;br /&gt;&lt;br /&gt; }catch(SQLException err){&lt;br /&gt;System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;}catch(Exception e){&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt;}&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void cerrarBD(){&lt;br /&gt; try {&lt;br /&gt; stm.close();&lt;br /&gt; if (conn!=null){&lt;br /&gt; conn.close();&lt;br /&gt; } &lt;br /&gt;&lt;br /&gt; }catch(SQLException err){&lt;br /&gt;System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;}catch(Exception e){&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt;}&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void consultar(String consulta){&lt;br /&gt;&lt;br /&gt; if(!consulta.equals("")){&lt;br /&gt; try{&lt;br /&gt; rst = stm.executeQuery(consulta);&lt;br /&gt; }catch(SQLException err){&lt;br /&gt; System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt; }catch(Exception e){&lt;br /&gt; System.out.println(e.getMessage());&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int insertar(String consulta){&lt;br /&gt;&lt;br /&gt; int s=-1;&lt;br /&gt;&lt;br /&gt; try{&lt;br /&gt; if(!(consulta.equals(""))){&lt;br /&gt; s = stm.executeUpdate(consulta);&lt;br /&gt; }&lt;br /&gt; }catch(SQLException err){&lt;br /&gt;System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;}catch(Exception e){&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt;}finally{&lt;br /&gt; return s; //Si es -1 es error del método insertar&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int actualizar(String consulta){&lt;br /&gt;&lt;br /&gt; int s=-1;&lt;br /&gt;&lt;br /&gt; try{&lt;br /&gt; if(!(consulta.equals(""))){&lt;br /&gt; s = stm.executeUpdate(consulta);&lt;br /&gt; }&lt;br /&gt; }catch(SQLException err){&lt;br /&gt;System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt; s=-1;&lt;br /&gt;}catch(Exception e){&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt; s=-1;&lt;br /&gt;}finally{&lt;br /&gt; return s; //Si es -1 es error del método Actualizar&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int borrar(String consulta){&lt;br /&gt; int s=-1;&lt;br /&gt;&lt;br /&gt; try{&lt;br /&gt; if(!(consulta.equals(""))){&lt;br /&gt; s = stm.executeUpdate(consulta);&lt;br /&gt; }&lt;br /&gt; }catch(SQLException err){&lt;br /&gt;System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;}catch(Exception e){&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt;}finally{&lt;br /&gt; return s;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public int contar(String consulta){&lt;br /&gt; int s=-1;&lt;br /&gt;&lt;br /&gt; try{&lt;br /&gt; if(!(consulta.equals(""))){&lt;br /&gt; rst = stm.executeQuery(consulta);&lt;br /&gt; if(rst.next()){&lt;br /&gt; s=rst.getInt(1);&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }catch(SQLException err){&lt;br /&gt;System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;}catch(Exception e){&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt;}finally{&lt;br /&gt; return s;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Una vez hecho esto, ya se puede instanciar esta clase en el proyecto, para hacer diferentes tareas. Por ejemplo, para hacer el login, sería:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;public int login(){&lt;br /&gt; int existe=0;&lt;br /&gt; try{&lt;br /&gt; MySQL mysql=new MySQL("flickr","//localhost","root", "forman");&lt;br /&gt;mysql.inicializarBD();&lt;br /&gt;//consulta&lt;br /&gt; mysql.consultar("SELECT idusuarios,rol FROM usuarios WHERE alias='"+alias+"' AND password='"+password+"' AND activado=1;");&lt;br /&gt; //ejecutar la consulta&lt;br /&gt; ResultSet rst = mysql.getResultSet();&lt;br /&gt;&lt;br /&gt; if(rst.next()){ //Existe&lt;br /&gt; existe=1;&lt;br /&gt; id=rst.getInt("idusuarios");&lt;br /&gt; }else{ //No existe&lt;br /&gt; id=-1;&lt;br /&gt; }&lt;br /&gt; mysql.cerrarBD();&lt;br /&gt;&lt;br /&gt; }catch(SQLException err){&lt;br /&gt; System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt; }finally{&lt;br /&gt; return id;&lt;br /&gt; }&lt;br /&gt; }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-3154821185310783736?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/3154821185310783736/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/modularizacion-clase-envoltorio-para.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3154821185310783736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3154821185310783736'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/modularizacion-clase-envoltorio-para.html' title='Modularización – Clase envoltorio para operaciones de BBDD'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-6636286750250485987</id><published>2012-02-07T09:37:00.001-08:00</published><updated>2012-02-07T09:37:55.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excepciones'/><title type='text'>Manejo de excepciones</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Siempre que exista un código problemático (que sea susceptible a error) &amp;nbsp;se debe incluir dentro de un try-catch, para que el error que pueda ‘arrojar’ este código, sea capturado y mostrado en pantalla como el usuario desee. A estos errores se le llaman excepciones. Hay excepciones de todo tipo y también se pueden crear unas propias para el proyecto. En este ejemplo se va a mostrar cómo crear una excepción personalizada, que se le lance cuando en un formulario, se inserte un producto que ya exista:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-248" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Primero se crea una clase excepción llamada ExcepcionProductoRepetido:&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;package org;&lt;br /&gt;&lt;br /&gt;public class ExcepcionProductoRepetido extends Exception {&lt;br /&gt;    ExcepcionProductoRepetido(){&lt;br /&gt;        super(); // constructor por defecto de Exception&lt;br /&gt;    }&lt;br /&gt;    ExcepcionProductoRepetido( String cadena ){&lt;br /&gt;        super( cadena ); // constructor param. de Exception&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Se crea la clase que lanzará la excepción (Lanzadora.java):&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;package org;&lt;br /&gt;public class Lanzadora {&lt;br /&gt;    public void siProductosIguales( int sonIguales ) throws ExcepcionProductoRepetido {&lt;br /&gt;    if(sonIguales==1){&lt;br /&gt;            throw new ExcepcionProductoRepetido( "Los productos están repetidos." );&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En la parte del código donde se inserta un producto en la base de datos:&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;...&lt;br /&gt;try{&lt;br /&gt;...&lt;br /&gt;mysql.inicializarBD();&lt;br /&gt;mysql.consultar("SELECT COUNT(nombre) AS COUNT FROM producto WHERE nombre='"+producto.getNombre()+"';");&lt;br /&gt;rst=mysql.getResultSet();&lt;br /&gt;if(rst.next()){&lt;br /&gt;   if(!rst.getString("count").equals("0")){&lt;br /&gt;        lanzaExcepcion.siProductosIguales(1);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;...&lt;br /&gt;}catch(ExcepcionProductoRepetido er){&lt;br /&gt;    out.println("Mi excepción: "+er.getMessage());&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;El resultado es que, si se crea un producto con el mismo nombre, aparecerá en pantalla el mensaje:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Mi excepción: Los productos están repetidos.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-6636286750250485987?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/6636286750250485987/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/manejo-de-excepciones.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/6636286750250485987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/6636286750250485987'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/manejo-de-excepciones.html' title='Manejo de excepciones'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-3784645477979935850</id><published>2012-02-07T04:01:00.000-08:00</published><updated>2012-02-07T04:01:17.495-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaMail'/><title type='text'>Envío de correo con JavaMail</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En una aplicación web profesional se suele usar el envío automático de email como un medio más para comunicar con el usuario. Por ejemplo, cuando se registra a un usuario, antes de que se guarde en la base de datos, la cuenta debe ser activada personalmente por este usuario, normalmente, entrando a un link que se le envía a su correo electrónico. Para el envío de JavaMails se puede usar tanto el servidor de correo donde está alojada la aplicación web, como cualquier proveedor de correo, como gmail. Aquí está el código necesario para enviar un email con una cuenta de gmail desde una aplicación Java:&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-243" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;//Envio del email para activar cuenta&lt;br /&gt;int enviadoEmail;&lt;br /&gt;// enter here the smtp mail server address&lt;br /&gt;// ask your ISP to get the proper name&lt;br /&gt;String mailServer ="smtp.gmail.com";&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String username="carmaoone5@gmail.com";&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String password="123aod12";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff9900; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String fromEmail = "carmaoone5@gmail.com";&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff9900; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String toEmail = usuario.getEmail();&lt;/span&gt;&lt;br /&gt;String messageEnter = "Hola "+usuario.getNombre()+", te has registrado en la web, pero para terminar el proceso tienes que activar tu cuenta pinchando en &amp;lt;a href='http://localhost:8080/Ejercicio_2.8._-_Catalogo/validacion.jsp?id="+idInsertado+"'&amp;gt;este enlace.&amp;lt;/a&amp;gt;";&lt;br /&gt;&lt;br /&gt;if (toEmail.equals("")) {&lt;br /&gt;    toEmail = "unknown";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Properties props = new Properties();&lt;br /&gt;props.put("mail.smtps.host", mailServer);&lt;br /&gt;props.put("mail.smtp.auth", "true");&lt;br /&gt;props.put("mail.smtps.port", "465");&lt;br /&gt;props.put("mail.smtps.STARTTLS.enable", true);&lt;br /&gt;&lt;br /&gt;Session o = Session.getInstance(props, null);&lt;br /&gt;&lt;br /&gt;MimeMessage message = new MimeMessage(o);&lt;br /&gt;&lt;br /&gt;InternetAddress from = new InternetAddress(fromEmail);&lt;br /&gt;message.setFrom(from);&lt;br /&gt;&lt;br /&gt;InternetAddress to = new InternetAddress(toEmail);&lt;br /&gt;&lt;br /&gt;message.addRecipient(Message.RecipientType.TO, to);&lt;br /&gt;&lt;br /&gt;message.setSubject("Validación de registro");&lt;br /&gt;message.setText(messageEnter);&lt;br /&gt;&lt;br /&gt;message.setContent(messageEnter, "text/html");&lt;br /&gt;&lt;br /&gt;Transport tr = o.getTransport("smtps");&lt;br /&gt;tr.connect(mailServer, username, password);&lt;br /&gt;&lt;br /&gt;message.saveChanges(); // don't forget this&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #339966; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;tr.sendMessage(message, message.getAllRecipients());&lt;/span&gt;&lt;br /&gt;tr.close();&lt;br /&gt;&lt;br /&gt;if (status == true) {&lt;br /&gt;    enviadoEmail=1;&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En rojo se muestra las variables que corresponden a la cuenta de gmail que va a enviar el email. En naranja aparece a quién va destinado el email (toEmail) y de quién es (fromEmail), además del mensaje que se envía. En verde aparece el código necesario para enviar el correo.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-3784645477979935850?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/3784645477979935850/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/envio-de-correo-con-javamail.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3784645477979935850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3784645477979935850'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/envio-de-correo-con-javamail.html' title='Envío de correo con JavaMail'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-4574105104555068369</id><published>2012-02-07T03:52:00.000-08:00</published><updated>2012-02-07T03:52:54.090-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='String'/><title type='text'>Las clases String, StringBuffer y StringBuilder – 2. Métodos</title><content type='html'>&lt;br /&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;La clases String, StringBuffer y StringBuilder tienen muchos métodos que permiten la manipulación de las cadenas. En la&amp;nbsp;&lt;a href="http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank"&gt;API de Java&lt;/a&gt;&amp;nbsp;se pueden encontrar documentación sobre todos ellos. Aquí se muestra un resumen de los más significativos:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Métodos String:&lt;/strong&gt;&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;char charAt(int index) .-&amp;nbsp;Devuelve el carácter en la posición indicada por index. El rango de index va de 0 a length() – 1.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;boolean equals(Object obj).-&amp;nbsp;Compara el String con el objeto especificado. El resultado es true si y solo si el argumento es no nulo y es un objeto String que contiene la misma secuencia de caracteres.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;boolean equalsIgnoreCase(String s).-&amp;nbsp;Compara el String con otro, ignorando consideraciones de mayúsculas y minúsculas. Los dos Strings se consideran iguales si tienen la misma longitud y, los caracteres correspondientes en ambos Strings son iguales sin tener en cuenta mayúsculas y minúsculas.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;int indexOf(char c).-&amp;nbsp;Devuelve el indice donde se produce la primera aparición de c. Devuelve -1 si c no está en el string.&lt;a name='more'&gt;&lt;/a&gt;&lt;/li&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span id="more-239" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;int indexOf(String s) .-&amp;nbsp;Igual que el anterior pero buscando la subcadena representada por s.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;int length() .-&amp;nbsp;Devuelve la longitud del String (número de caracteres)&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String substring(int begin, int end) .-&amp;nbsp;Devuelve un substring desde el índice begin hasta el end (&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;el end no incluido&lt;/strong&gt;)&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;static String valueOf(int i) .-&amp;nbsp;Devuelve un string que es la representación del entero i. Obsérvese que este método es estático. Hay métodos equivalentes donde el argumento es un float, double, etc.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;char[] toCharArray()&lt;br /&gt;String toLowerCase()&lt;br /&gt;String toUpperCase() .-&amp;nbsp;Transforman el string en un array de caracteres, o a mayúsculas o a minúsculas.&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Métodos StringBuffer:&lt;/strong&gt;&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;StringBuffer append(char&amp;nbsp;c) .-&amp;nbsp;Añade el carácter c al valor del StringBuffer. Este método está&amp;nbsp;sobrecargado varias veces recibiendo como parámetro otros&amp;nbsp;tipos: String, Object, int, float, long…&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public char&amp;nbsp;charAt(int&amp;nbsp;index) .-&amp;nbsp;Devuelve el carácter de la posición&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;index&lt;/em&gt;.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public int&amp;nbsp;indexOf(int&amp;nbsp;ch) .-&amp;nbsp;Devuelve la primera ocurrencia de&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ch&amp;nbsp;&lt;/em&gt;(-1 si no está).&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public int&amp;nbsp;length() .-&amp;nbsp;Devuelve la longitud de la cadena de caracteres.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public int&amp;nbsp;capacity() .-&amp;nbsp;Devuelve el número de caracteres que puede contener sin&amp;nbsp;necesidad de alocar mas memoria.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;String toString() .-&amp;nbsp;Devuelve un String representado por el StringBuffer.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;String substring(int&amp;nbsp;beginIndex) .-&amp;nbsp;Devuelve un String desde&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;beginIndex&amp;nbsp;&lt;/em&gt;hasta el final.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;StringBuffer reverse() .-&amp;nbsp;Devuelve la cadena invertida.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public void&amp;nbsp;setCharAt(int&amp;nbsp;index,&amp;nbsp;char&amp;nbsp;ch) .-&amp;nbsp;Reemplaza el carácter de la posición&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;index&amp;nbsp;&lt;/em&gt;por&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ch&lt;/em&gt;.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;StringBuffer replace(int&amp;nbsp;start,&amp;nbsp;int&amp;nbsp;end, String str) .-&amp;nbsp;Reemplaza la cadena entre&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;start&amp;nbsp;&lt;/em&gt;y&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;end&amp;nbsp;&lt;/em&gt;con&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;str&lt;/em&gt;.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;StringBuffer insert(int&amp;nbsp;offset,&amp;nbsp;char&amp;nbsp;c) .-&amp;nbsp;Inserta&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;c&amp;nbsp;&lt;/em&gt;en la posición&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;offset&amp;nbsp;&lt;/em&gt;de la cadena. Este método&amp;nbsp;está sobrecargado varias veces recibiendo como parámetro&amp;nbsp;a insertar otros tipos: int, float, long…&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&amp;nbsp;StringBuffer delete(int&amp;nbsp;start,&amp;nbsp;int&amp;nbsp;end) .-&amp;nbsp;Elimina de los caracteres entre las posiciones&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;start&amp;nbsp;&lt;/em&gt;y&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;end&lt;/em&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-4574105104555068369?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/4574105104555068369/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/las-clases-string-stringbuffer-y_07.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4574105104555068369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4574105104555068369'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/las-clases-string-stringbuffer-y_07.html' title='Las clases String, StringBuffer y StringBuilder – 2. Métodos'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-5488541006435870750</id><published>2012-02-06T06:46:00.000-08:00</published><updated>2012-02-06T07:30:43.491-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javabeans'/><title type='text'>Javabeans</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Un Javabeans es una clase plana (POJO – Plain Old Java Objects) con atributos privados, constructor y métodos get y set. En JSP se usan para pasar datos de un lado a otro y sustituye a los servlets que se han visto en entradas anteriores, para hacer más claro y eficiente el código y contribuye a la separación entre lógica de negocio y presentación.&lt;br /&gt;Por ejemplo, usando el ejemplo de inicio de sesión de usuarios que se vió en la&amp;nbsp;&lt;a href="http://www.programadorjavaweb.tk/2012/02/ejemplo-de-uso-de-base-de-datos-paso-de.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank" title="Ejemplo de uso de base de datos, paso de parámetros y sesiones – Agenda personal"&gt;agenda personal&lt;/a&gt;, el equivalente simplificado sería este:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-229" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Se crea un clase Javabean llamada Usuario.java. En ella se definen los atributos y los métodos get y set.&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;package org;&lt;br /&gt;&lt;br /&gt;public class Usuario implements java.io.Serializable {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String nombre;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String email;&lt;br /&gt;    private String clave;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getId()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setId(int id){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.id=id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getNombre()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return nombre;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setNombre(String nombre){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nombre=nombre;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getEmail()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return email;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setEmail(String email){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.email=email;&lt;br /&gt;&amp;nbsp;&amp;nbsp;  } &lt;br /&gt;&lt;br /&gt;    public String getClave()&lt;br /&gt;    {&lt;br /&gt;        return clave;&lt;br /&gt;    }&lt;br /&gt;    public void setClave(String clave){&lt;br /&gt;        this.clave=clave;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Después, en el index.jsp, se crea el formulario igual que en casos anterior. Los campos tienen que tener el mismo ‘name’ que el del atributo de la clase:&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page contentType="text/html" pageEncoding="UTF-8"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;jsp:useBean id="usuario" scope="session" /&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Inicio sesión&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;lt;div align="center" style="background-color:gainsboro"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form method="POST" action="IniciarSesionBeans.jsp" name="frm" id="idForm"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table style="background-color: gainsboro"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt;Nombre:&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="text" id="txtNombre" name="nombre"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt;Password:&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="password" id="txtPassword" name="clave"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr align="right"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="button" name="BtnEnviar" id="BtnEnviarId" value="ENVIAR" onclick="Validar();" /&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En IniciarSesionBeans.jsp se va a usar el bean creado mediante el tag de acción: &amp;lt;jsp:useBean id=”usuario” scope=”session” /&amp;gt;&lt;br /&gt;Se usa la visibilidad ‘session’ para hacer que los atributos de usuario se puedan usar en cualquier parte del proyecto.&lt;br /&gt;Mediante&lt;br /&gt;&amp;lt;jsp:setProperty name=”usuario” property=”*” /&amp;gt;&lt;br /&gt;se obtiene todos los valores del formulario de index.jsp y se le asignan a los atributos de la clase usuario.&lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page contentType="text/html" pageEncoding="UTF-8"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.sql.ResultSet"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.sql.SQLException"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.sql.DriverManager"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.sql.Statement"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.sql.Connection"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.lang.String"%&amp;gt;&lt;br /&gt;&amp;lt;%@page import="java.lang.Object"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;jsp:useBean id="usuario" scope="session" /&amp;gt;&lt;br /&gt;&amp;lt;jsp:setProperty name="usuario" property="*" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Connection conn=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Statement stm= null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nombre,password;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;nombre=usuario.getNombre();&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password=usuario.getClave();&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //crear el driver&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Class.forName("com.mysql.jdbc.Driver").newInstance(); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //obtener el manejador&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn=DriverManager.getConnection("jdbc:mysql://localhost/banco", "root", "forman"); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //obtener el statement&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stm= conn.createStatement(); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String sql;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //consulta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sql="SELECT idusuario FROM usuario WHERE nombre='"+nombre+"' AND clave='"+password+"';";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //ejecutar la consulta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet rst = stm.executeQuery(sql);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(rst.next()){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff6600; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;usuario.setId(Integer.parseInt(rst.getString("idusuario")));&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff6600; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usuario.setNombre(nombre);&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usuario.setId(-1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getRequestDispatcher( "/index.jsp" ).forward( request, response );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stm.close(); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(SQLException err){ &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){ &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(e.getMessage());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }finally{ &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //cerrar la conexion&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (conn!=null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En rojo se puede ver como se obtienen los valores que se guardaron en los atributos de usuario desde el formulario. En naranja se muestra como establecer los atributos id y nombre a usuario, de forma que, como se puso scope=”session”, pueda ser utilizado en otros jsp del proyecto, simplemente poniendo al principio del código el &amp;lt;jsp:useBean id=”usuario” scope=”session” /&amp;gt; y recogiendo las varibles con&amp;nbsp;usuario.getId().&lt;br /&gt;Si no se pone scope=”session” los valores de los atributos del Javabean solo se podrán manipular dentro de ese mismo jsp.&lt;br /&gt;Por último, cuando sea necesario cerrar la sesión y borrar todos las variables, se hace igual que en servlets:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page contentType="text/html" pageEncoding="UTF-8"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;jsp:useBean id="usuario" scope="session" /&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usuario.setId(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpSession sesion = request.getSession(false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sesion.invalidate();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getRequestDispatcher( "/index.jsp" ).forward( request, response );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-5488541006435870750?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/5488541006435870750/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/javabeans.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/5488541006435870750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/5488541006435870750'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/javabeans.html' title='Javabeans'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-4301344572668660819</id><published>2012-02-06T03:30:00.000-08:00</published><updated>2012-02-06T03:35:27.809-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='String'/><title type='text'>Las clases String, StringBuffer y StringBuilder – 1. Introducción</title><content type='html'>&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;En Java no existe un tipo de datos primitivo que sirva para la manipulación de cadenas de caracteres.&amp;nbsp; En su lugar se usa una clase definida en la API llamada String. Por lo tanto, las cadenas en Java se tratan como objetos. Debido a que este objeto se usa frecuentemete, existe soporte directo, con lo que simplificar alguna operaciones. Así, si se quiere crear una variable de tipo String, como objeto que es, se debe instanciar:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;String s =&amp;nbsp;&lt;b&gt;new&lt;/b&gt;&amp;nbsp;String("hola");&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;Aunque se puede hacer de forma directa:&lt;/span&gt;&lt;/div&gt;&lt;pre style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;String s = "hola";&lt;/span&gt;&lt;/pre&gt;&lt;pre style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;Por otro lado, cuando a un String se le modifica el valor, la memoria que ocupaba éste no se reemplaza, sino que se borra y se crea una nueva zona de memoria (es una zona de memoria inmutable). Esto hace que si se modifica muchas veces la variable String se hace un mal uso de la gestión de la memoria.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-AacTbK7kH88/Ty-5v84DTZI/AAAAAAAAADY/4PTbp6hFzWM/s1600/string.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="color: #444444;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-AacTbK7kH88/Ty-5v84DTZI/AAAAAAAAADY/4PTbp6hFzWM/s1600/string.jpg" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;a href="http://franciscovaldivia.files.wordpress.com/2011/11/string.jpg"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;&lt;a href="http://franciscovaldivia.files.wordpress.com/2011/11/string.jpg"&gt;&lt;br /&gt;&lt;/a&gt;Por eso, existen 2 clases más tipo String, definidas en la api, que permiten el uso de cadenas de forma variable, no constante, StringBuffer y StringBuilder.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;StringBuffer sí es mutable, asi que cuando se cambia la cadena se mantiene la misma zona de memoria. Y StringBuilder, que tambien es mutable, pero no es thread-safe, es decir, que no esta prerparada para proceso multihilo, por lo que es más óptima.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;En estas dos clases, para darle valor a la variable, sí es necesario instanciarlo:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="color: #444444;"&gt;StringBuffer s =&amp;nbsp;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;StringBuffer("Hola");&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-4301344572668660819?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/4301344572668660819/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/las-clases-string-stringbuffer-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4301344572668660819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4301344572668660819'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/las-clases-string-stringbuffer-y.html' title='Las clases String, StringBuffer y StringBuilder – 1. Introducción'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-AacTbK7kH88/Ty-5v84DTZI/AAAAAAAAADY/4PTbp6hFzWM/s72-c/string.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-3166055502630778919</id><published>2012-02-03T10:42:00.000-08:00</published><updated>2012-02-04T02:56:22.185-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Base de datos'/><category scheme='http://www.blogger.com/atom/ns#' term='Ejemplo de uso'/><category scheme='http://www.blogger.com/atom/ns#' term='Parametros'/><category scheme='http://www.blogger.com/atom/ns#' term='Sesiones'/><title type='text'>Ejemplo de uso de base de datos, paso de parámetros y sesiones – Agenda personal</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Una vez que ya se han visto en entradas anteriores cómo hacer uso de una base de datos, de cómo se pasan los parámetros de una página a otra y de cómo usar las sesiones, ha llegado el momento de ver un ejemplo que lo englobe todo. El ejemplo consiste en crear una agenda personal, de forma que un usuario se registe en la base de datos, y pueda crear, modificar o eliminar sus contactos. Solo cuando el usuario inicie sesión aparecerán sus contactos (y solo los suyos).&lt;br /&gt;Las tablas necesarias en la base de datos sería la de usuarios(idusuarios,nombre,password,email) y contactos(idcontactos,nombre,telefono,email,idUsuario)&lt;br /&gt;Aquí esta un documento adjunto con todo el código:&lt;br /&gt;&lt;a href="https://docs.google.com/document/d/1DY5IAkfXe84MKxQOFPYPtbwcctSeY5RBblDratlnZx8/edit" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank"&gt;Ejemplo de uso Agenda personal&lt;/a&gt;&lt;br /&gt;Y aquí la descripción de cada método:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;index.jsp&lt;br /&gt;La página principal mostrará el formulario de inicio de sesión y permitirá registrar. Si el usuario ya ha iniciado sesión, mostrará los contactos de su agenda&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;InicioSesionServlet.java&lt;br /&gt;Este servlet recogerá los datos del formulario, y hará una consulta a la base de datos para ver si existe. Si es así, se crearán las variables de sesión y el usuario habrá iniciado sesión.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;registro.jsp&lt;br /&gt;Aquí el usuario rellena un formulario para registrarse. Tiene javascript para validar los campos. En caso de que ya exista el nombre de usuario se devolverá un error.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;RegistrarUsuarioServlet.java&lt;br /&gt;Este es el servlet al que llama registro.jsp. En el se toman las variables del formulario enviadas por método POST y se insertan en la base de datos con INSERT INTO.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;insertarContacto.jsp&lt;br /&gt;Aquí se muestra un formulario para crear un contacto del usuario dado por la variable de sesión.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;InsertarContactoServlet.java&lt;br /&gt;Es el que recoge los datos del formulario y los inserta en la base de datos.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;buscar.jsp&lt;br /&gt;Esta página se muestra cuando en la página principal, el usuario rellena el textbox del Buscar. Coge ese texto y lo busca en la base de datos usando LIKE y ORDER BY. Recorrerá el resultado de la consulta y los muestra.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;modificar.jsp&lt;br /&gt;A esta página le llegan los parámetros del contacto enviados por el index.jsp mediante el método GET, y lo &amp;nbsp;muestra dentro de un formulario.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ModificarContactoServlet.java&lt;br /&gt;Las modificaciones que se realicen se insertan en la base de datos mediante UPDATE.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;BorrarContactoServlet.java&lt;br /&gt;Toma mediante request.getParameter la variable dada por index.jsp y borra el contacto de la base de datos mediante DELETE.&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;cerrarSesion.jsp&lt;br /&gt;Destruye todas las variables de sesión mediante invalidate().&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-3166055502630778919?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/3166055502630778919/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/ejemplo-de-uso-de-base-de-datos-paso-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3166055502630778919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3166055502630778919'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/ejemplo-de-uso-de-base-de-datos-paso-de.html' title='Ejemplo de uso de base de datos, paso de parámetros y sesiones – Agenda personal'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-5495243377603067247</id><published>2012-02-02T10:06:00.000-08:00</published><updated>2012-02-02T10:06:59.678-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sesiones'/><title type='text'>Sesiones en Java</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En&amp;nbsp;&lt;a href="http://www.programadorjavaweb.tk/2012/02/servlet-y-jsp-2-paso-de-parametros.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank" title="Paso de parámetros"&gt;entradas anteriores&lt;/a&gt;&amp;nbsp;se ha visto cómo se pasan parámetros de una página a otra. En una web en el que hay un sistema de registro de usuarios, cuando un usuario ha iniciado sesión y navega por sus diferentes páginas, cada una de las páginas debe tener acceso a los datos de ese usuario (id, nombre,…). Con los métodos GET y POST aprendidos anteriormente, en cada llamada a la página siguiente habría que ir pasando estos parámetros, lo que hace que todo se haga más lioso, con más líneas de código y menos óptimo. Por eso, para estos casos se hace uso de las variables de sesión, donde cada página podrá acceder a las variables globales de todo el proyecto.&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;span id="more-193" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Cuando un cliente solicita una URL al servidor, este reserva memoria para ese cliente y le da una id. A esta zona de memoria se le llama Sesión. Para activar esta zona de memoria, en el código de la web, en la página donde se logea el usuario, se usa:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;HttpSession sesion=request.getSession(true);&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Este código solo se escribe una vez en todo el proyecto. Para establecer las variables de la sesión se pondría:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;sesion.setAttribute("nombre_de_variable",ValorDeVariable);&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para que en otra página se pueda recoger esa variable de sesión,&amp;nbsp; se debe de poner en cada jsp o servlet que lo necesite:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;HttpSession sesion=request.getSession(false);&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Y despues se obtienen con:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;sesion.getAttribute("nombre_de_variable");&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Hay que tener en cuenta que la sesión guarda objetos. Para recoger esos objetos hay que hacerle un cast para tomarlo como el tipo de dato que se desee. Por ejemplo, si se quiere establecer una variable entero con valor 4, y despues se quiere obtener, sería haría así:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;sesion.setAttribute("nombre_variable_entero",new Integer(4));&lt;br /&gt;---...---&lt;br /&gt;int variable_entero_que_recojo=(Integer) sesion.getAttribute("nombre_variable_entero");&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;O para el caso de querer usar una variable de sesión de tipo String:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;sesion.setAttribute("nombre_variable_string", "valor_variable_string");&lt;br /&gt;---...---&lt;br /&gt;String varible_string_que_recojo=sesion.getAttribute("nombre_variable_string").toString();&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Por último, cuando se cierre la sesión del usuario, se querrá borrar de memoria todas estas variables, para ello se usa:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;sesion.invalidate;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-5495243377603067247?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/5495243377603067247/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/sesiones-en-java.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/5495243377603067247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/5495243377603067247'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/sesiones-en-java.html' title='Sesiones en Java'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-4048003016044994819</id><published>2012-02-02T07:07:00.001-08:00</published><updated>2012-02-02T07:23:22.591-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Validar con Javascript</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Cuando el usuario rellena un formulario en una página web, éste se envía al servidor y hace las pertinentes operaciones con esos datos.&amp;nbsp; Los datos que rellena el cliente deben ser validados, de forma que no mande campos en blanco o caracteres incorrectos. Para no saturar el servidor, lo correcto es que la validación se realice en el propio cliente. Para ello, se va a usar el lenguaje javascript. Este código tambien se descarga en el&amp;nbsp; cliente junto al HTML.&lt;br /&gt;Aquí hay un ejemplo de validación de un formulario, comprobando que el usuario no mande algun campo en blanco:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;span id="more-190" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Registro&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &amp;lt;script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Validar() { &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (document.getElementById("idNombre").value == "") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("spanErrorNombre").innerHTML = "&amp;lt;font color='red'&amp;gt;* Campo obligatorio&amp;lt;/font&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (document.getElementById("idPassword").value == "") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("spanErrorPassword").innerHTML = "&amp;lt;font color='red'&amp;gt;* Campo obligatorio&amp;lt;/font&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (document.getElementById("idMail").value == "") {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("spanErrorMail").innerHTML = "&amp;lt;font color='red'&amp;gt;* Campo obligatorio&amp;lt;/font&amp;gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{ &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.frm.submit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div align="center" style="background-color:gainsboro"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form action="RegistrarUsuarioServlet" method="post" name="frm" id="idFrm"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;Registro de usuario&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt; Nombre: &amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="text" name="txtNombre" id="idNombre"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;span id="spanErrorNombre"&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt; Password: &amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="password" name="txtPassword" id="idPassword"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;span id="spanErrorPassword"&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;label&amp;gt; E-mail: &amp;lt;/label&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="text" name="txtMail" id="idMail"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;span id="spanErrorMail"&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff6600; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;input type="button" name="BtnEnviar" id="BtnEnviarId" value="ENVIAR" onclick="Validar();"&lt;/span&gt; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En rojo se marca las etiquetas que encuadran el código Javascript. Aquí se pone en la parte de arriba por hacerlo más visible, pero es recomendable ponerlo debajo de todo el HTML para hacer la compilación más óptima. Aunque si va a ser un código más extenso, con muchas funciones, lo mejor sería crear un archivo .jsp aparte y luego llamarlo en la página principal.&lt;br /&gt;En naranja se muestra cómo desde el HTML se llama a la función que hay en el javascript. El input type=”Button” tiene muchos eventos que se pueden controlar, como el momento de pulsar el boton (onClick), el de pasar el raton por encima(onMouseOver), etc.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Lo que hace este código es obtener los valores de cada campo mediante el getElementById y, si estan vacíos, insertar HTML en el hueco definido con la etiqueta &amp;lt;span&amp;gt;, mostrando un mensaje de error. Siempre es mejor por eficiencia usar el getElementById antes que el getElementByName. Tener en cuenta tambien que a todos los elementos de la página web a los que se vaya a hacer referencia en códigos javascript o en servlets, siempre se deben identificar con el id y el name, ya que los archivos java (servlets) lo van a referenciar con el valor dado en name y los archivos de javascript, con el id.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Por último, decir que Javascript no tiene nada que ver con Java, son lenguajes distintos, se le nombró así por puro marketing.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-4048003016044994819?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/4048003016044994819/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/validar-con-javascript.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4048003016044994819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/4048003016044994819'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/validar-con-javascript.html' title='Validar con Javascript'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-6572692583702608440</id><published>2012-02-01T10:34:00.000-08:00</published><updated>2012-02-01T10:34:08.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Base de datos'/><category scheme='http://www.blogger.com/atom/ns#' term='JDBC'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuracion'/><title type='text'>Bases de datos en Java</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En este ejemplo se va a mostrar como crear una base de datos en MySQL y cómo acceder a sus datos desde una aplicación web Java.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Crear base de datos&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En primer lugar hay que instalar MySQL Server&amp;nbsp;&lt;a href="http://dev.mysql.com/downloads/mysql/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank"&gt;http://dev.mysql.com/downloads/mysql/&lt;/a&gt;&amp;nbsp;. En la misma instalación dará la opcion de ejecutar el asistente de configuración de instancia (‘Launch the MySQL Instance Configuration Wizard), marcar la casilla y seguir con la instalación. Para trabajar localmente habría que darle Siguiente en todos los pasos, hasta el apartado de Character set, donde habrá que elegir la utf8 (es el lenguaje universal y no habrá problemas con los caracteres). 2 pasos más en la instalación y aparecerá las opciones de seguridad, ahí habrá que crear una contraseña (en nuestro caso forman) y se habilitará la casilla ‘Enable root access from remote machines’.&lt;br /&gt;Una vez instalado MySQL Server, hay que instalar MySQL Workbench 5.2. CE&amp;nbsp;&lt;a href="http://dev.mysql.com/downloads/workbench/5.2.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank"&gt;http://dev.mysql.com/downloads/workbench/5.2.html&lt;/a&gt;.&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Con todo instalado, hay que ejecutar el Workbench. Se crea una base de datos con Add Schema y se crean las tablas dentro de él con add table. Cuando se crea una tabla te pide que Engine quieres usar, hay que tener en cuenta que el mejor para bases de datos complejas que permitan por ejemplo transacciones (Routines) o consultas anidadas, se debe usar InnoDB, en caso de ser menos compleja mejor usar MyISAM porque es mucho más rápida.&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Uso de la librería MySQL JDBC.&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Para hacer uso de base de datos en nuestro proyecto, hay que añadir la librería MySQL JDBC Driver, para ello pulsar con el segundo botón en la carpeta Libraries del proyecto y seleccionar Add Library.&lt;br /&gt;&lt;span id="more-187" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;A continuación se muestran distintos Snippets (trozos de código reutilizables) de las principales operaciones que se van a realizar &amp;nbsp;en Java sobre una base de datos:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Seleccionar de una base de datos y mostrarla en una tabla&lt;br /&gt;Connection conn=null;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Statement stm= null;&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;try {&lt;br /&gt;&amp;nbsp; //crear el driver&lt;br /&gt;&amp;nbsp; Class.forName("com.mysql.jdbc.Driver").newInstance();&lt;br /&gt;&amp;nbsp; //obtener el manejador&lt;br /&gt;&amp;nbsp; conn=DriverManager.getConnection("jdbc:mysql://localhost/agenda", "root", "forman");&lt;br /&gt;&amp;nbsp; //obtener el statement&lt;br /&gt;&amp;nbsp; stm= conn.createStatement();&lt;br /&gt;&amp;nbsp; String sql="SELECT idcontactos,nombre,telefono,email FROM contactos WHERE idUsuario='"+idLogeado+"' ORDER BY nombre;"; &amp;nbsp;//ejecutar la consulta&lt;br /&gt;&amp;nbsp; ResultSet rst = stm.executeQuery(sql);&lt;br /&gt;&amp;nbsp; int contador=0;&lt;br /&gt;&amp;nbsp; While(rst.next()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contador++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(contador%2!=0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr style="background-color:lightcyan"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td width="70%"&amp;gt;&amp;lt;!--Nombre--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h4&amp;gt;&amp;lt;%=rst.getString(2) %&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td width="10%"&amp;gt;&amp;lt;!--Telefono--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;%=rst.getString(3) %&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td width="10%"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;a href="BorrarContactoServlet?id=&amp;lt;%=rst.getString(1)%&amp;gt;"&amp;gt;Eliminar&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td width="10%"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a href="modificar.jsp?id=&amp;lt;%=rst.getString(1)%&amp;gt;&amp;amp;nombre=&amp;lt;%=rst.getString(2)%&amp;gt;&amp;amp;telefono=&amp;lt;%=rst.getString(3)%&amp;gt;&amp;amp;email=&amp;lt;%=rst.getString(4)%&amp;gt;"&amp;gt;Modificar&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(contador%2!=0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr align="right" style="background-color:lightcyan"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr align="right"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;!--Email--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h4&amp;gt;&amp;lt;%=rst.getString(4) %&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(contador==0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;No hay ningún contacto&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stm.close();&lt;br /&gt;&amp;nbsp; }catch(SQLException err){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString());&lt;br /&gt;&amp;nbsp; }catch(Exception e){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(e.getMessage());&lt;br /&gt;&amp;nbsp;}finally{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //cerrar la conexion&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (conn!=null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();&lt;br /&gt;&amp;nbsp; }&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En rojo se ha marcado el código específico para conectar y abrir la base de datos, y para realizar la consulta SQL. Tener en cuenta que cuando se hace una consulta con SELECT, es recomendable (por eficiencia) especificar siempre los campos que se quieren consultar, no poner un * para que te busque todos cuando algunos serán innecesarios. Despues se muestra en pantalla el resultado de la consulta, recorriéndola fila por fila e imprimiendo en una tabla.&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Realizar acciones CRUD (Create – Read – Update – Delete)&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;// Crear&lt;br /&gt;INSERT INTO Usuarios (Nombre, Apellidos, Correo) VALUES ('Juan Luis', 'Suárez', 'juanluis.suarez@gmail.com');&lt;br /&gt;// Leer&lt;br /&gt;SELECT nombre, apellidos, correo FROM Usuarios;&lt;br /&gt;//Actualizar&lt;br /&gt;UPDATE Usuarios SET nombre='Luisito' where Nombre='Juan Luis';&lt;br /&gt;//Borrar&lt;br /&gt;DELETE FROM Usuarios WHERE Nombre='Juan Luis';&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Uso de LIKE y ORDER BY para las búsquedas.&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f7f7f7; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;String sql="SELECT idcontactos,nombre,telefono,email FROM contactos WHERE nombre LIKE '%"+request.getParameter("txtBuscar")+"%' ORDER BY nombre;";&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-6572692583702608440?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/6572692583702608440/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/bases-de-datos-en-java.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/6572692583702608440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/6572692583702608440'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/bases-de-datos-en-java.html' title='Bases de datos en Java'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-3085366323635987872</id><published>2012-02-01T10:28:00.000-08:00</published><updated>2012-02-01T10:28:39.757-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='Parametros'/><title type='text'>Servlet y JSP – 2. Paso de parámetros</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Como se ha visto en la primera parte sobre&amp;nbsp;&lt;a href="http://www.programadorjavaweb.tk/2012/01/servlet-y-jsp-1-introduccion.html" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank" title="Servlet y JSP Introducción"&gt;Servlet y JSP&lt;/a&gt;, cuando el cliente (navegador) solicita una URL, esta se envía al servidor. En el servidor, se ejecutan archivos .jsp y .java. Cuando, por ejemplo, un index.jsp llamar a un servlet(.java) estos se comparten variables, de forma que el resultado de una variable en el servlet, se le pueda mandar al jsp, y viceversa.&lt;br /&gt;En el ejemplo de la entrada anterior, solo usábamos el paso de parámetros de jsp a java, mediante el método POST de un formulario. Hay otros casos en las que necesitaremos pasarlas de otra forma, que son:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Envía de A.jsp a B.jsp (método GET)&lt;ul style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En A.jsp:&lt;br /&gt;&amp;lt;a href=”B.jsp?ID=1&amp;amp;NOMBRE=Fran”&amp;gt; Ir a B &amp;lt;/a&amp;gt;&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En B.jsp:&lt;br /&gt;id=request.getParameter(“ID”);&lt;br /&gt;nombre=request.getParameter(“NOMBRE”);&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Envía de A.jsp a Servlet.java:&lt;ul style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En A.jsp:&lt;br /&gt;&amp;lt;a href=”Servlet?ID=1″&amp;gt;Ir a Servlet&amp;lt;/a&amp;gt;&lt;br /&gt;o&lt;br /&gt;request.setAttribute(“nombre_del_parametro”,valorDelParametro);&lt;br /&gt;request.getRequestDispatcher(“Servlet”).forward(request,response);&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En Servlet:&lt;br /&gt;id=request.getParameter(“ID”);&lt;br /&gt;o&lt;br /&gt;p=request.getAttribute(“nombre_del_parametro”);&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 24px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Envía de Servlet.java a B.jsp:&lt;ul style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-image: initial; list-style-position: initial; list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En Servlet.java:&lt;br /&gt;request.setAttribute(“nombre_del_parametro”,valorDelParametro);&lt;br /&gt;request.getRequestDispacher(“/B.jsp”).forward(request,response);&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;En B.jsp:&lt;br /&gt;p=request.getAttribute(“nombre_del_parametro”);&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-3085366323635987872?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/3085366323635987872/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/servlet-y-jsp-2-paso-de-parametros.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3085366323635987872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/3085366323635987872'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/02/servlet-y-jsp-2-paso-de-parametros.html' title='Servlet y JSP – 2. Paso de parámetros'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-2099326341944825537</id><published>2012-01-30T09:39:00.000-08:00</published><updated>2012-02-01T10:30:44.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><title type='text'>Servlet y JSP – 1. Introducción</title><content type='html'>&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Empiezo con el primer artículo Java. En primer lugar decir que los ejemplos que vaya poniendo en estos artículos los he comprobado y funcionan correctamente. Yo he usado&amp;nbsp;&lt;a href="http://netbeans.org/downloads/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" target="_blank" title="Enlace descarga Netbeans"&gt;Netbeans 7.0&lt;/a&gt;&amp;nbsp;como entorno de trabajo (lo recomienda Oracle), aunque podeis usar cualquier otro, como Eclipse. Así pues, empezamos con los servlets:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;El funcionamiento del servlet se puede resumir en esta figura:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://franciscovaldivia.files.wordpress.com/2011/10/servlet1.jpg" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #743399; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;img alt="" class="aligncenter size-medium wp-image-156" height="194" src="http://franciscovaldivia.files.wordpress.com/2011/10/servlet1.jpg?w=300&amp;amp;h=194" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; border-width: initial; clear: both; display: block; height: auto; margin-bottom: 12px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; width: auto;" title="servlet" width="300" /&gt;&lt;/a&gt;El servlet se utiliza para recibir peticiones, operar con esas peticiones y redireccionar a un JSP.&amp;nbsp;Un JSP es código HTML con código Java incrustado que se compila en estos servlet.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Por ejemplo, esto es el código necesario para hacer un conversor de divisas, donde el cliente rellena un formulario y lo envía al servlet, el cual hará el cálculo y mostrará el resultado:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Código jsp:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&amp;lt;%@page contentType="text/html" pageEncoding="UTF-8"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;h1&amp;gt;Ejercicio 2.1&amp;lt;/h1&amp;gt;&lt;br /&gt;        &amp;lt;h2&amp;gt;Conversor de divisas&amp;lt;/h2&amp;gt;&lt;br /&gt;        &amp;lt;form method="POST" action="Ejercicio2Servlet"&amp;gt;&lt;br /&gt;            Dolares&lt;br /&gt;            &amp;lt;input type="text" id="txtDolares" name="txtDolares"/&amp;gt;&lt;br /&gt;            &amp;lt;br&amp;gt;&lt;br /&gt;            &amp;lt;input type="submit" value="Convertir a Euros" /&amp;gt;&lt;br /&gt;            &amp;lt;br&amp;gt;&lt;br /&gt;            Euros&lt;br /&gt;            &amp;lt;input type="text" id="txtEuros" name="txtEuros"/&amp;gt;&lt;br /&gt;            &amp;lt;br&amp;gt;&lt;br /&gt;            &amp;lt;input type="submit" value="Convertir a Dolares" /&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 15px; line-height: 21px; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: normal;"&gt;&lt;br /&gt;Código servlet&lt;/div&gt;&lt;br /&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Courier 10 Pitch', Courier, monospace; margin-bottom: 24px; overflow-x: auto; overflow-y: auto; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; vertical-align: baseline;"&gt;package org;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.annotation.WebServlet;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Tarde&lt;br /&gt; */&lt;br /&gt;@WebServlet(name = "Ejercicio2Servlet", urlPatterns = {"/Ejercicio2Servlet"})&lt;br /&gt;public class Ejercicio2Servlet extends HttpServlet {&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Processes requests for both HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; methods.&lt;br /&gt;     * @param request servlet request&lt;br /&gt;     * @param response servlet response&lt;br /&gt;     * @throws ServletException if a servlet-specific error occurs&lt;br /&gt;     * @throws IOException if an I/O error occurs&lt;br /&gt;     */&lt;br /&gt;    protected void processRequest(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;            throws ServletException, IOException {&lt;br /&gt;        response.setContentType("text/html;charset=UTF-8");&lt;br /&gt;        PrintWriter out = response.getWriter();&lt;br /&gt;&lt;br /&gt;        double dolares,euros;&lt;br /&gt;        String dolaresQueEnvia, eurosQueEnvia, dolaresQueDevuelve,eurosQueDevuelve;&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            out.println("&amp;lt;html&amp;gt;");&lt;br /&gt;            out.println("&amp;lt;head&amp;gt;");&lt;br /&gt;            out.println("&amp;lt;/head&amp;gt;");&lt;br /&gt;            out.println("&amp;lt;body&amp;gt;");&lt;br /&gt;&lt;br /&gt;            &lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;dolaresQueEnvia=request.getParameter("txtDolares");&lt;/span&gt;&lt;br /&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;nbsp;&amp;nbsp; eurosQueEnvia=request.getParameter("txtEuros");&lt;/span&gt;&lt;br /&gt;&amp;nbsp;           if(!dolaresQueEnvia.equals("")){&lt;br /&gt;&amp;nbsp;              dolares = Double.valueOf(dolaresQueEnvia).doubleValue();&lt;br /&gt;&amp;nbsp;              euros=dolares*0.71;&lt;br /&gt;&amp;nbsp;              eurosQueDevuelve=Double.toString(euros);&lt;br /&gt;&amp;nbsp;              out.println(dolaresQueEnvia + " dolares son " + eurosQueDevuelve + " euros.&amp;lt;br&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;          }&lt;br /&gt;            if(!eurosQueEnvia.equals("")){&lt;br /&gt;&amp;nbsp;&amp;nbsp;             euros = Double.valueOf(eurosQueEnvia).doubleValue();&lt;br /&gt;&amp;nbsp;              dolares=euros*1.73;&lt;br /&gt;&amp;nbsp;              dolaresQueDevuelve=Double.toString(dolares);&lt;br /&gt;&amp;nbsp;&amp;nbsp;             out.println(eurosQueEnvia + " euros son " + dolaresQueDevuelve + " dolares.&amp;lt;br&amp;gt;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;          }&lt;br /&gt;            out.println("&amp;lt;/body&amp;gt;");&lt;br /&gt;            out.println("&amp;lt;/html&amp;gt;");&lt;br /&gt;&lt;br /&gt;        } finally {&lt;br /&gt;            out.close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // &amp;lt;editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."&amp;gt;&lt;br /&gt;    /**&lt;br /&gt;     * Handles the HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; method.&lt;br /&gt;     * @param request servlet request&lt;br /&gt;     * @param response servlet response&lt;br /&gt;     * @throws ServletException if a servlet-specific error occurs&lt;br /&gt;     * @throws IOException if an I/O error occurs&lt;br /&gt;     */&lt;br /&gt;    @Override&lt;br /&gt;    protected void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;            throws ServletException, IOException {&lt;br /&gt;        processRequest(request, response);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Handles the HTTP &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; method.&lt;br /&gt;     * @param request servlet request&lt;br /&gt;     * @param response servlet response&lt;br /&gt;     * @throws ServletException if a servlet-specific error occurs&lt;br /&gt;     * @throws IOException if an I/O error occurs&lt;br /&gt;     */&lt;br /&gt;    @Override&lt;br /&gt;    protected void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;            throws ServletException, IOException {&lt;br /&gt;        processRequest(request, response);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Returns a short description of the servlet.&lt;br /&gt;     * @return a String containing servlet description&lt;br /&gt;     */&lt;br /&gt;    @Override&lt;br /&gt;    public String getServletInfo() {&lt;br /&gt;        return "Short description";&lt;br /&gt;    }// &amp;lt;/editor-fold&amp;gt;&lt;br /&gt;}&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: normal;"&gt;Lo que esta marcado en rojo indica la forma en que el servlet recibe los parámetros que le envió el JSP, es decir, los valores que el usuario introdujo en los campos de texto.&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-2099326341944825537?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/2099326341944825537/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/01/servlet-y-jsp-1-introduccion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/2099326341944825537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/2099326341944825537'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/01/servlet-y-jsp-1-introduccion.html' title='Servlet y JSP – 1. Introducción'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1960115620245184997.post-1877744101719505250</id><published>2012-01-30T04:36:00.000-08:00</published><updated>2012-02-01T10:35:33.244-08:00</updated><title type='text'>¡¡Bienvenidos!!</title><content type='html'>Hola, bienvenido a mi blog donde podrás encontrar apuntes sobre JEE. Estos apuntes estan basados en lo aprendido en el curso Experto en desarrollo Java (J2EE)&amp;nbsp;impartido&amp;nbsp;por Forman. Además, tambien podrás encontrar otras ayudas para programar en otras tecnologías como Android...&lt;br /&gt;Espero que te sirva de ayuda, saludos.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sY0hz-1X8AA/TyaOMQRwqTI/AAAAAAAAADI/tTcJKm07Xbc/s1600/forman.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55" src="http://4.bp.blogspot.com/-sY0hz-1X8AA/TyaOMQRwqTI/AAAAAAAAADI/tTcJKm07Xbc/s200/forman.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UWHYWjyEuWw/TyaOMKghmQI/AAAAAAAAADE/tAjOSxcJjN8/s1600/customlogo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;span id="goog_844513664"&gt;&lt;/span&gt;&lt;a href="http://www.forman.es/" target="_blank"&gt;http://www.forman.es&lt;/a&gt;&lt;span id="goog_844513665"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1960115620245184997-1877744101719505250?l=www.programadorjavaweb.tk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.programadorjavaweb.tk/feeds/1877744101719505250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.programadorjavaweb.tk/2012/01/bienvenidos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/1877744101719505250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1960115620245184997/posts/default/1877744101719505250'/><link rel='alternate' type='text/html' href='http://www.programadorjavaweb.tk/2012/01/bienvenidos.html' title='¡¡Bienvenidos!!'/><author><name>Fran vh</name><uri>http://www.blogger.com/profile/02742004646656217644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_KNLOBClH-oM/TKjBm9mtTzI/AAAAAAAAAAM/es26JBYD3q0/S220/images.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-sY0hz-1X8AA/TyaOMQRwqTI/AAAAAAAAADI/tTcJKm07Xbc/s72-c/forman.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>