Está en la página 1de 44

4.

Servlet
Son programas que se ejecutan en un servidor Web compatible con la tecnologa servlets como Tomcat. Los servlets actan como una capa intermedia entre la peticin de un clientes de un navegador Web y una base de datos. Generan pginas web de forma dinmica a partir de los parmetros de la peticin que enve el navegador web. Un servlets podra ser responsable de tomar los datos de un formulario HTML de entrada y aplicar la lgica del negocio utilizada para actualizar la base de datos.

Implementacin completa para la versin J2EE se encuentra en: http://java.sun.eom/j2ee/1.4/docs/api/javax/servlet/http/package-summary.html

4.1

Estructura bsica
Un ServIetRequest, que encapsula la comunicacin desde el cliente al servidor. Contiene los mtodos que permiten encontrar informacin entrante como datos de un formulario, cabeceras de peticin HTTP y el nombre de un Host de un cliente Un ServIetResponse, que encapsula la comunicacin de vuelta desde el serviet hacia el cliente. Contiene los mtodos que permiten especificar lneas de respuesta HTTP (200, 404, etc.), cabeceras de respuesta (Content-Type, Set-Cookie, etc.), y, todava ms importante, nos permiten obtener un PrintWriter usado para enviar el contenido del documento al cliente

Cuando un serviet acepta una llamada de un cliente, recibe dos objetos:

ServIetRequest

Estacin de trabajo

ServIetResponse

31 de 85

4.2

Hola Mundo

Crear un servlet en Netbeans:

Paso 1: Crear un proyecto Web

J i 3 Groovy - g3 NetBeans Modules S Samples

':]Creates an empty Web application in a standard IDE proiecL A standard project uses an :\d build script to buildj run, and debug your project.

i-!:*.'..ji~..ifext.!> ..-

Paso 2: Elija un nombre para el proyecto y una carpeta de almacenamiento

1. 2. 3. 4.

Choose Pro ject ame and Location Server and Settlngs Frameworks

PtojktJSa;:; SPruebaServIetl

<Bsck f{"Jiiit>:J;-:-'-'.-EtV: UiP^i |: *

32 de 85

Paso 3: Selecciones el servidor de aplicaciones o Web y una versin de java:


9 NewWb An>iL3ii('ii Steps 1. 2. 3. 4. Choose Projert ame and Location Server and Settings Frameworta

Paso 4: Selecciones un FrameWork:


SP Nea Web *ppfcal-ran. Steps 1. 2. 3. 4. ChoosePro)ea ame and Location Server and Setttngs Frameworks

Sj Q Spring Wb MC 2.S 'i PH JavaServer Faces 3] Q ante 1.3.8 ij 0 Hlbernate 3.2.5

33 de 85

Paso 5: selecciones la siguiente opcin i|Pflj|si||tel;Files .^--.. ndex.jsp x. SS;ilS

U Java Main Class... Build Clean and Build !

i
|
I

[j JavaClass...

^JJJavaPackage...
B3SP'"

H T ^ "1
!. a i -S v f* *EP Lib

Clean Genrate Javadoc


: : : :

PHTML...

~"""

Te Cot

Run Deploy
I profile Test RESTf'J Web Ssrvtes Test l l a ^ a i n T r ^ Open Required Projects cise I | Alt+F6 | | | 1 SU Entity Classes From Datbase... I I JSFPagesfrom Entity Classes... ^ Web Service... g Web5ervice from WSDL... * Web Service Client' iRESTful Web Services from Entity Classes... fJjRESTful Web Services from Patterns.,.

Paso 6: Ponga nombre al serviet y al package que lo contiene y hacer clic en "Finish":

... .

34 de 85

| | | P

' :9

: gM

; ! f | | f e ! ^

35 de 85

Se debe configurar el Netbeans para que la aplicacin corra desde este Servlet, desde las "Properties" del proyecto

La ejecucin genera:
'Servlet Pruelia- Mozilla Firefox Archivo ;L
;3

iffir" iJl i http://localhost:8080/PruebaServlBt/Prueba


:r:.:]|;'ei-tei; PrueSigsS

J.Jeaj.J

Hola Mundo
ncwtrsr:.; 1

4.3

Mtodos

A continuacin se describen algunos de los mtodos usados con mayor frecuencia en un Servlet y que tiene relacin con el objetivo de este captulo

4.3.1 String getParameter(Strng ame)


Mtodo que recupera un parmetro de la request. Devuelve un String con el valor del parmetro o nuil en caso de que no exista el parmetro que se intenta recuperar. Vamos a considerar un formulario de ingreso de user y password y vamos a recuperar sus parmetros. Para esto vamos a crear el index.jsp, recuperamos y mostramos los valores en el serviet DataFomulario.java.

36 de 85

t
xelftl^qu^

ISfti

^^
'\^
^^^^^H^^K^^^^^^^^^^^^^-^^'^^'''^'^
efe .ri^e|*iisuTO^fae=0":*</ld>:::

^^

i|*S|B^^

iyHt|gr!%RSQa|^po|Bg||s''.:.: j; 8 f^ExSpfen^ffi

|||S^f=i||i^5l?Pp:SwS^^^^ :;ip|na'pffia:^||ue(::|^P^ s;ffin|i|i01^feg^,get8^tttSelr("iMs^


37 de g5

.::;|riiitWrit | : ; ^ * 3 l ^
xit^ uif^
:lfit.p^^

lpiirt

| ^ gptJ!

38 de 85

Para probar se tiene:

Archivo

Editar ;: :Vcr C?
:

Historial :X
:

Maftadores' Herramientas

Ayuda .'.

::;

%'iKil''-

j a .4jhttp://localhosl::8080/PruebaServl

User.

| rg arces
I. ..QKv-j

Password: [

Luego el servlet muestra: ";> aarvlet'DataFornulario. - Mozila Firafos" Archivo Editar / V e r Historia!; Harfcadofes.\s ; Ayuda ; : - ; : : ;

1W: f>Xi-2;"SS http://btalhost:8080/PruebaSei-vl 1

Usuario: rgarces Password: rgarces 1234

Laboratorio: Tiempo estimado, 45 minutos Se pide crear el siguiente formulario y recuperar y mostrar usando un servlet informacin ' Cliente.-tozillaFirefox Archivo ; Cditr. /Ver ^/Hi^orial:; Marcadores "^Herramientas! Ayuda 'E4I'35: C/-' 3*/ SI fl ihttp://taca!htMt:8080/LablJO/
::':i>.,.-.j- ".;..;.,. '.. :".,;.;:.v5vi, :.JW?'fl" P.:"**';::"'

la siguiente

Nombre:! Edad: G?oJ|j Sexo: Mujer Hombre QLeer

T, r . BTV Preferencia: r^,

CJDeporte DOcio

Comentario: I

39 de 85

4.3.2 String[ ] getParameterValues(Strng ame)


Mtodo que recupera los mltiples valores asociados a un parmetro de la request. Devuelve un array de String con todos los valores del parmetro o nuil en caso de que no exista el parmetro que se intenta recuperar. El tpico ejemplo de uso del mtodo es cuando una lista desplegable tien opcin para seleccionar ms de un valor:

Color(es):

lf ^ e | f i | | | | y g ^ ^

l iW

:^

i^^ S

40 de 85

:5C;^

^^

^il^gli&il^

m
K^^j^i^^j^^jj:

41 de 85

*1^feij!$^^ jjjjj^

Resultado:

JSP )g - MozsBs Hrefox Archivo -.Editar; tefi:::rtstcind;:Srcadores:<;Herramlentas;/ Ayuda;;

iCa \Verde

OSsrelel RecuperaMuliipUs- tozlla Rrel


Archivo Iditar; Ver:"; ';Historia!::": Hercadipre5:, Hr/amisitas;: Aydi '::"''

Negro Blanco Lila

42 de 85

5. Encapsulacin (Java Bean)


En programacin modular, y ms especficamente en programacin orientada a objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que slo se puede cambiar mediante las operaciones definidas para ese objeto. Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. De esta forma el usuario de la clase puede obviar la mplementacin de los mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas. Otra definicin un tanto ms simple: La encapsulacin consiste en ocultar la complejidad de una clase e impedir accesos no autorizados Java, como lenguaje orientado a objetos puro que es, implementa la encapsulacin (o encapsulamiento) perfectamente. Este concepto consiste en la ocultacin del estado, o lo que es lo mismo, de los datos miembro de un objeto, de forma que slo es posible modificar los mismos mediante las operaciones (mtodos, en Java) definidos para dicho objeto. Ms especficamente: Para mplementar la encapsulacin en java debemos: Declara nuestras variable de instancia de la clase como prvate Inicializar las variables en sus valores por defecto o los convenientes para el desarrollo Se debe declarar al menos un mtodo constructor de la clase sin parmetros Para cada variable declarar mtodos accesadores (conocidos como mtodos get) y mtodos mutadores (conocidos como mtodos set)

5.1

Mtodos accesadores: get

Los mtodos que utilizan formas estndar de recuperacin de datos de un objeto se denominan accesores.

5.2

Mtodos mutadores: set

Los mtodos estndar establecen, recuperan o cambian los datos de un objeto

43 de 85

5.3 Ejemplo
Por ejemplo, si consideramos la clase estudiante con los atributos "edad" y "nota", se tiene:

Estudiante
Atrbates - edad : ni -.:hota -'.: doiible ;v:V^.....

I getEdad(:J':: ini';;;;: ':..';.,yV '^ f .sgtE,d.adf.<edd.'i;iJt;^ ^iqid.

.....

.i:S'f:3

^v::::::V^

Con estos mtodos se pueden incorporar restricciones a los valores ingresados . Por ejemplo, en el caso de la edad se pueden permitir slo valores > O cero. As el mtodo sera ahora:

44 de 85

l i l i l
--'ivVK^wm;'..- s'jiii:!

Tambin se puede, por ejemplo, en el caso de la nota permitir slo valores entre 1.0 y 7.0, asignado

aiiiaijiiif^^
fliSfltiiflBftvfSl

1.0 para otros casos

| ^p^lll?--^!I:^h":/ '^"^ ^^^|;

45 de 85

6. JDBC
Java Datbase Connectivlty, ms conocida por sus siglas JDBC, es una API que permite la ejecucin de operaciones sobre bases de datos desde el lenguaje de programacin Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice. El API JDBC se presenta como una coleccin de interfaces Java y mtodos de gestin de manejadores de conexin hacia cada modelo especfico de base de datos. Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las nterfaces Java y que utilizan los mtodos de registro para declarar los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexin apropiada al modelo de su base de datos, y accede a ella estableciendo una conexin, para ello provee el localizador a la base de datos y los parmetros de conexin especficos. A partir de all puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta, actualizacin, creacin, modificacin y borrado de tablas, ejecucin de procedimientos almacenados en la base de datos, etc.

| ^ !

La especificacin se encuentra en: http://java.sun.eom/javase/6/docs/technotes/guides/jdbc/

6.1

Qu la API de JDBC 2.0 Incluye

La API de JDBC 2.0 incluye todas las de la API que es parte de Java SE, y tambin la API de JDBC en la extensin estndar de la API. La lista siguiente se definen diversos trminos utilizados para hablar de la API de JDBC. La API de JDBC completa, incluyendo el paquete tanto la java.sql (el API de JDBC 2.0 Core) y el paquete de javax.sql (la extensin estndar de la API de JDBC). El J2EE, incluye el total de la API de JDBC 2.0. La API de JDBC que es parte de Java SE, que inciuye la API de JDBC 1.0, ms la nueva API de JDBC aadido en el paquete java.sql. Algunas de las nuevas caractersticas de este paquete son los conjuntos de resultados desplazable, actualizaciones de proceso por lotes, actualizaciones de programas, y apoyo los nuevos tipos de SQL3.

46 de 85

La API javax.sql, puede ser descargado de http://java.sun.com/products/jdbc.

Este paquete

hace que sea ms fcil de construir aplicaciones de servidor utilizando la plataforma Java, proporcionando una arquitectura abierta que soporta pool de conexiones y de las transacciones distribuidas que abarcan varios servidores de base de datos. La API de DataSource desempea un papel integral en estas capacidades y tambin trabaja con los nombres de JavaTM y Directorio Interfacetm (JNDI) para mejorar la portabilidad y hacer ms fcil el mantenimiento del cdigo. El paquete de javax.sql tambin proporciona la API de RowSet lo que hace que sea fcil de manejar conjuntos de datos desde prcticamente cualquier fuente de datos como componentes JavaBeansTM. El paquete java.sql el API de JDBC 2.0 Core, que incluye el API de JDBC 1.0, ms la nueva API aadido en el J2SE En consonancia con la poltica de mantener la compatibilidad hacia atrs, las aplicaciones escritas usando la API de JDBC 1.0 seguir funcionando tanto con el Java y J2EE, al igual que siempre han corrido. Aplicaciones de las funciones utilizando aadido en la API de JDBC 2.0, por supuesto, deben ser ejecutados con un controlador compatible con estas caractersticas.

6.2

Qu es la API de JDBC?

La API de JDBC es una API de Java para acceder a prcticamente cualquier tipo de datos. La API de JDBC consiste en un conjunto de clases e interfaces escritas en Java lenguaje de programacin que proporciona un API estndar para la herramienta / desabolladores de bases de datos y permite escribir aplicaciones de bases de datos usando una fuerza industrial de todas las API de Java. La API de JDBC hace que sea fcil enviar comandos SQL a los sistemas de bases de datos relacinales y apoya todos los dialectos de SQL. Pero la API de JDBC 2.0 va ms all de SQL, tambin por lo que es posible interactuar con otros tipos de fuentes de datos, como archivos. El valor de la API de JDBC es que una aplicacin puede acceder a prcticamente cualquier fuente de datos y ejecutar en cualquier plataforma con una mquina virtual de Java. En otras palabras, con la API de JDBC, no es necesario escribir un programa para acceder a una base de datos Sybase, otro programa para acceder a una base de datos Oracle, otro programa para acceder a una base de datos DB2 de IBM, y as sucesivamente. Uno puede escribir un solo programa usando el API de JDBC, y el programa ser capaz de enviar de SQL u otras declaraciones a la fuente de datos adecuado. Y, con una aplicacin escrita en el lenguaje de programacin Java, uno no tiene que preocuparse acerca de la escritura para ejecutar las diferentes aplicaciones en diferentes plataformas. La combinacin de la plataforma Java y la API de JDBC permite al programador escribir una yez y ejecutar en cualquier lugar. El lenguaje de programacin Java, siendo robusto, seguro, fcil de usar, fcil de entender, y descargar automticamente en una red, es una base excelente para aplicaciones de lenguaje de base de datos. Lo que se necesita es una manera para las aplicaciones Java para hablar con una variedad de diferentes fuentes de datos. JDBC es el mecanismo para hacer esto.

47 de 85

Directores de MIS, como la combinacin de la plataforma Java y la tecnologa JDBC porque hace que la difusin de informacin fcil y econmica. Las empresas pueden seguir utilizando sus bases de datos instaladas y acceso a la informacin fcilmente, incluso si se almacena en distintos sistemas de gestin de bases de datos u otras fuentes de datos. El tiempo de desarrollo de nuevas aplicaciones es corto. De instalacin y control de versiones son muy simplificado. Un programador puede escribir una aplicacin o una actualizacin de una vez, lo puso en el servidor, y todo el mundo tiene acceso a la ltima versin. Y para las empresas que venden servicios de informacin, la combinacin de la tecnologa Java y JDBC ofrece una mejor forma de salir actualizaciones de la informacin a los clientes externos.

6.3

Qu hace la API de JDBC hacer?

En trminos simples, una tecnologa basada en JDBC driver (controlador JDBC ") permite hacer tres cosas: 1. Establecer una conexin con una fuente de datos 2. Enviar consultas y actualizar las declaraciones a la fuente de datos 3. Proceso de los resultados

6.4

Conexin de Informacin general

Un objeto Connection representa una conexin con una base de datos. Una sesin de conexin incluye las instrucciones SQL que se ejecutan y los resultados que se devuelven en la conexin. Una sola aplicacin puede tener una o ms conexiones con una sola base de datos, o puede tener conexiones con muchas bases de datos diferentes. v_^v Un usuario puede obtener informacin sobre la base de datos un objeto de Connection invocando el mtodo de Connection.getMetaData. Este mtodo devuelve un objeto DatabaseMetaData que contiene informacin sobre tablas de la base de datos, la gramtica de SQL que soporta, sus procedimientos almacenados, las capacidades de esta conexin, y as sucesivamente.

6.5

Establecer una conexin

La forma tradicional de establecer una conexin con una base de datos es llamar a la DriverManagengeConneetion mtodo. Este mtodo toma una cadena que contiene una direccin URL. La clase DriverManager conocida como la capa de gestin de JDBC, intenta localizar un controlador que puede conectarse a la base de datos correspondiente a dicha URL. La clase DriverManager mantiene una lista de clases Driver registrados, y cuando el getConnection mtodo se llama, comprueba con cada conductor en la lista hasta que encuentre uno que pueda conectarse

a la base de datos especificada en la URL. El mtodo de Driver connect utiliza esta URL para realmente establecer la conexin. El cdigo siguiente es un ejemplo de la apertura de una conexin a una base de datos ubicada en la "jdbc:odbc:wombat" con un ID de usuario de "oboy" y "12Java" como la contrasea:
. ^ : ^ ^ S ^ ; P ^ r / l ^ " ^ ' ^ ^ ' "-^-;:^;--; -^:^:'^K^'

El JDBC 2.0 proporciona la interfaz DataSource como una alternativa a la DriverManager para establecer una conexin. Cuando una clase DataSource se ha aplicado adecuadamente, el objeto DataSource se puede utilizar para producir objetos Connection que participan en la agrupacin de conexiones y / o objetos Connection que pueden participar en transacciones distribuidas. DataSource es la alternativa preferida para la creacin de una conexin. Una aplicacin utiliza un objeto Connection producido por DataSource de manera esencialmente es la misma que utiliza un objeto Connection producido por el DriverManager. Si un objeto Connection es parte de una transaccin distribuida, una aplicacin no debe llamar a los mtodos Connection.commit o Connection. rollback, el modo de confirmacin. Estos pudieran interferir con el manejo del administrador de transacciones distribuida.

6.6

URL de Uso General

Cuando una aplicacin que utiliza el DriverManager para crear un objeto Connection debe proveer una direccin URL para el mtodo DriverManager.getConnection. Dado que las direcciones URL a menudo causan una cierta confusin, lo primero que le dar una breve explicacin de las direcciones URL en general y luego ir a una discusin de JDBC URL. La primera parte de una URL especifica el protocolo usado para acceder a la informacin, y siempre es seguido por dos puntos. Algunos protocolos comunes son ftp que especifica "file transfer protocol" y http que especifica "protocolo de transferencia de hipertexto". Si el protocolo es file se indica que el recurso est en un sistema de archivos local en lugar de en Internet.

El resto de la URL, todo despus de los primeros dos puntos, da informacin sobre dnde se encuentra la fuente de datos. Si el protocolo es file el resto de la URL es la ruta para el archivo. Para el ftp protocolos y http el resto de la direccin identifica al host y, opcionalmente, puede dar una ruta de acceso a un sitio ms especfico.

49 de 85

6.7

JDBC URL

Una URL JDBC proporciona una forma de identificar una fuente de datos para que el controlador apropiado lo reconocer y establecer una conexin con l. Driver escritores son los que realmente determinar cul es la URL de JDBC que identifica a un conductor particular ser. Los usuarios no tendrn que preocuparse sobre cmo formar una URL JDBC, sino que simplemente utilizan la URL suministrado con los controladores que estn utilizando. Papel de JDBC es recomendar algunas convenciones para los escritores de conductor a seguir en la estructuracin de sus JDBC URL. La sintaxis estndar para JDBC URL se muestra aqu. Consta de tres partes, que estn separados por dos puntos. jdbc:<subprotocol>:<subname>

Las tres partes de una URL JDBC se desglosan de la siguiente manera: 1. jdbc en el protocolo. El protocolo en una URL JDBC es siempre jdbc 2. <subprotocol> nombre del conductor o el nombre de un mecanismo de conectividad de bases de datos, que puede ser apoyado por uno o ms conductores. Un ejemplo destacado de un nombre de Subprotocolo es odbc que ha sido reservado para las URL que especifique los nombres de datos ODBC estilo de fuente. Por ejemplo, para acceder a una base de datos a travs de un puente JDBC-ODBC, se podra utilizar una URL como la siguiente: jdbc:odbc:fred 3. <subname> manera de identificar la fuente de datos. El subname puede variar, dependiendo de la Subprotocolo, y puede tener cualquier sintaxis interna del escritor conductor elija, incluyendo un subsubname. El punto de un subname es dar suficiente informacin para localizar el origen de datos. En el ejemplo anterior, fred es suficiente porque ODBC proporciona el resto de la informacin. Una fuente de datos en un servidor remoto requiere ms informacin, sin embargo. Si la fuente de datos es accesible a travs de Internet, por ejemplo, la direccin de red debe incluirse en la URL JDBC como parte de la subname y deben adherirse a la direccin siguiente convencin de nomenclatura estndar: //hostname:port/subsubname

6.8

Liberacin DBRflS Recursos

Se recomienda que los programadores de cerrar explcitamente las conexiones y las declaraciones que han creado cuando ya no son necesarios. Un programador de escribir cdigo en el lenguaje de programacin Java y que no utilice

50 de 85

ninguna de recursos externos, no necesita preocuparse por la gestin de memoria. El recolector de basura elimina automticamente los objetos cuando ya no se utiliza y libera la memoria que se utiliza. Cuando la memoria se est agotando, se reciclan los objetos desechados, haciendo que la memoria que ocupan actualmente disponible para la reutilizacin rpida. Sin embargo, si una aplicacin utiliza los recursos externos, como lo hace cuando tiene acceso a un DBMS con la API de JDBC, el recolector de basura no tiene manera de conocer el estado de esos recursos. Por lo tanto, se recomienda que los programadores explcitamente cerrar todas las conexiones (con el mtodo Connection.cise y declaraciones con el mtodo Statementclose tan pronto como ya no son necesarios, liberando as recursos DBMS tan pronto como sea posible. Esto se aplica especialmente a las aplicaciones que estn destinados a trabajar con DBMS diferentes debido a las variaciones de un SGBD a otro. Tenga en cuenta que el mtodo Connection.isClosed est garantizada para regresar true slo cuando es llamado por el mtodo de Connection.close ha sido llamado. Como resultado de ello, un programador no puede depender de este mtodo para indicar si la conexin es vlida o no. En cambio, un cliente tpico de JDBC puede determinar que una conexin no es vlida por la captura de la excepcin que se produce cuando se intenta una operacin de JDBC.

6.9

DriverManager Informacin general

La clase DriverManager es la capa de gestin tradicional de JDBC, de trabajo entre el usuario y los controladores. Se realiza un seguimiento de los controladores que estn disponibles y se ocupa de establecer una conexin entre una base de datos y el controlador apropiado. Adems, la clase DriverManager atiende a aspectos como los plazos de acceso y el controlador de impresin de registro y mensajes de seguimiento. Para aplicaciones simples, el nico mtodo en la clase DriverManager que un programador en general necesita usar directamente es DriverManager.getConnection. Como su nombre lo indica, este mtodo se establece una conexin a una base de datos.

6.10 Crear una conexin


Para esto se va a crear una clase que proporciones el servicio y en la cual se puedan configurar "en duro" sus parmetros.

51 de 85

| f f i | ; I i | ^ |p^^

*:sWS:!v;S

S " -^-t;^8vf *'^V:M:i:-:


SHf'\Mf-im:,

Insertar datos Vamos a considera el siguiente formulario para trabajar con la tabla "cliente" en la base de datos "dgac":

crate table alurnno( rut varchar(SO), edad int, sexo boolean, primary key(rut)

52 de 85

JSPPage-.MostillaRrefox,:

. '.. :v::.; Herrar lentas :;^;"Ayyd"-..;V''

Archivo" Editar1; Ver ! Historial . Marcadores

V1:1! ?i;J' Pag.}" ,.: .->;.' ;.'', ':;; ,:-'--.;-- ::,- ' i '{'''V<::::

.-J1-1; ./..i;;:, >L.;:.,:i ...;^^,i.^. .

lfe*J 1 .,
Edad [ 20..

Zl
J 1

||Sexo:| Mujer OHombre

im

Se debe declarar el driver segn se muestra:

1 B-B Ejemplo 1_20 I I Bt-I WebPages ffi-& Source Packages S"fe Test Packages

Test Ubi Configu?

Ada JAR/Folder; Properties

53 de 85

El resultado de esto se puede preciar:

: prnects,

ifiles..,.

il: Services

Ejemplol_20 C&",H Source Packages TestPackages mysql-connector-java-5.1.1 l-bn, jar I H JDK 1.6 (Default) 161 GlassFish v3 Domain Test Librarles Configuration Files

EL JSP que pide la informacin es:

S:':*l;W((i':S:Bg-5<SPt;ft(S!|j%^^

, Jf 'is*s;;Si

54 de 85

&Xf^:^f^^
W^I^ t:"^^?^:<::^

M:-^te|;s;:;;;{;

I l l S l i i i l i l

El siguiente serviet recibe los datos y los procesa llamando a la clase que provoca la conexin:

5ifillli

55 de 85

:VVM:;;:^:;""";y;s^

": vg;*;:.,;^111^:1:^^^^^

-.''." '.

E i l i i B l S l i i i l i l i i l ^

I l l l 8 l | l i i l ^ ^

ilS|spifa(Hi|iKiSs^^

56 de 85

i l B ^ i l i l i ^ ^ ^ l ^ l l S i | f ^

-^S!A--V!:!:*i.5!St'!!!-!:-Ssf!W! .."ii-K-S^i^i'Saiss*, ^iffl ' > : : : & * i i a ; u ; . . ' ; ; , . i , , S ! ; i : !

l l i l i i P i i ^ l l l l ^

' de 85

Los datos usados para las pruebas fue: .. JSP Page -.Mozila Piafes
Archivo '. Editar ;Vf::' Historial:" Marcadores :: -Herramientas
:

Ayuda ,,

;;Q:asP^fle:v;?;:,is:::;-j = ^j;;::. ; -\-'"S^SS&

Rut: |
Edad:)

14000000

I;

[25 a|

____J i

Sexo:! SS Mujer Hombre j

S
fe'- Servlet Procesalnsertr r-AtlIn Fjrefe chivo . Editar :'^Ver. ;3iistn(;;BarcaclrBsv ,

J;l)3l]^
4^i;; ::i;:.i!.:.t'4fl:S}3 f | 'i'SS'SK/jK

SI se inserto el registro

lect * fposi! cliente i edad ! sexo 'i i 4000080 ! ">

Observacin: Es una mala tcnica el ejecutar todo el proceso es una sola clase (en este caso el servlet). En el captulo II se desarrolla el mismo proceso usando el patrn de diseo MVC que proporciona una mejor estructuracin de la programacin para ejecutar mantenciones.

6.11 Eliminar datos


Siguiendo con el ejemplo anterior vamos a pedir el rut y procedemos a eliminar el registro asociado. Los registros insertados en la tabla son:

58 de 85

El JSP que lee el rut:

SS^SSW'BRSSKdS'iBfK" 1-:-^?^'sW''sSi"."vS4SS''-?SKS':-iiPSW:

^^^yM^MHS^^^
El serviet que elimina el registro:

It ^ S ^ I I I ^ i l ^ l l ^ f | ^ | ? ^ l | t e S

:-

...;^' :.;.::;;v:V^|r;il::/-y:^vv;\^;:i;:S/::^

:...;A; .&;'" '.^i^Kf^M^f-' v1i:''vSjSS.: ^'ii'v-:;'111^;?;---': -a-..;-.-'-'-.?,'.

59 de 85

SI

1I!H'^

i|jfl^

f|||Hra^|fflgix|ig^|i!j^;|^||^||i|^^^^ ^* IllSs^^^^^^S?!;^^ if .IfeS

!:SS"Sfipa!lKtS

, , , , , ,

'

| i M I | ^

; pp

p;iatBsSB!fii:pRl!68i^

S i l i l p i l i i l l i S ^ i i i S p i l l l l ^

3 1 J l i S B l l l S V S I j l l l l l | H l ^ : P i S | l l l i l l 3 l i ^

iiiiiiiii^j!^

i I i l l i i i l i H i 8 l M
60 de 85

S83P19
::^r;";.

ItilttJitiS

iiSSllltiilSB^

lC,aqs6aji |s ouuj|Q es isJuuujjd'inp ;< ; , ,'' r , - -- , . :(B<^poq>B)UBUMd"pj '. ; ,;, ^peei^Juguyid-no' ^ .,',": , ^Bi^JBjjesuieseood |0jwes<8tP>)uuJd"no '""/ , . / . (peaq^uiiuMd-jno A
s

;,,

;,
:

'",' ;'

:t,<juinj>)uBU(jid-o,;

rf;

"' / .-'
N";

/"

'''"''..: '/Va- /'"" ; ^^ : .'

/. '- '
-",--'',''
'
s

',
"
,

r f- -'"' \
:
''' .' .'' -

k *"
'""

, ' ; ' % ,- : -r'. ; ' " ' est",'


' ' ''",. !

. '

"\ *

- '" -. y : -'

> '

;>

, : - ' ' . ' - .

- < '-:. .".-V-S*)'.":

'IISS^i5tPIr i l l l t l i i K i3^^ i l l ^ ^

Elimina -JtezHa Firefux Archivo


: Editar^:

Ver ^:'Historial V- Mrcarlores;:.v'.'HerfanwitaS;,' ; 'yiji;

Rutl 15000000

tspK.l

O Scfv1.et.Pr0c:esaIrBerlr asEflla Fwnios


Archivo litar ^Vfiv HstorialVjvHafcaBorsrS Herrriifritas.'-' Ayuda;i

l:-!:S::;';Pfi|lOlI^1i.jlii
Iv^OTletl'roccsalniertafea' ''.*f - ;:/f i^iStl-^^^W^fS
^i:--:^1.;^"1;';;.^-^M1.1.1'/-!^;..-;^.:...:.,:,: .-: :.;U";t jjjp*^,?-' :^::i;.:"; -1^-%::^L.i1.;^U:L,.vv;.;-;v;ii^J.-.:l-,:..v;^1,;^

SI se elimino el registro

6.12 Actualiza registro


El objeto es recuperar los rut en una "lista desplegable" comenzando por recuperar los datos del primer registro y luego dependiendo de la eleccin de rut de la "lista desplegable" mostrar los datos correspondientes. Esto se ha programado: 1. Recuperan desde la base de datos en el JSP usando JDBC 2. Almacenar esta informacin en un Array manejado por Javascript que muestra la informacin particular de cada registro. El cdigo comentado es:

62 de 85

: Vjjjjlllji

"-;-:;OM*;W*;i:'. ^^^^M^^^^^^^^^^^^^^-^^^^^^^^^^^^j^^^^^^^^^^^^^^^^^^i^^

''S : " V ' ' ''X.-''--- '.w'1 :-..,!*'

":/:;';;"-^Vi;:.-;.>&:>;;.-^w:::-;^';-':1^^,:

t l ^ S l l i i ^

^^^rQ^-i:;;^;:?::-^;^^:? ; ^ l i ^

f | . ;;:*;:'. -j- 'v^ij.^^?^;;-? ^^i

63 de 85

J^M^'sS^^^

vV^:iiH$

^lli^jK:;^^
' "
V

ISIISlliStfl^^

siiSiBifiKaiWj^

If'liKSlJlS^

Mmm;mmemMK

-^^

1 1 3 1
64 de 85

illlfSli^^
3::v:;^1';::;/0v;^

J;V^^A;V^~::'^'^

H^lSiliiS^^

y:-;.:':-;:S^;--lS:;:?;^

..U> :v^i;K.f;-;v^^;%::'--y;i:;.^ Ky-^t''^^'^^:^^-^:^?^^-. vi'.SvL. ^.;;-^

..... J**'"^t

siiiiiiii^
C?MifiSf^^
:;:T-!;f-^^^

65 de 85

SC'iSfiJSiEissi&fv-JSSeswf^^^^

Los datos en la tabla son: select * fron cliente; edad 1 4 8 8 8 0 0 0 16W0B80 17000800 18088B0 19800000 20000000 sexo

66 de 85

Al partir el formulario se tiene: 15 Actualizar - Mezill; Firefox


Archivo Editar - Ver Historial V Marcadores': Herramientas

Rut:

JJ^OOMOO fu

Edad: Sexo:

[25jl| Mujer Oombre

Al hacer clic sobre uno de los rut:


y:actualizar - Mazllla

Rut: Edad: Sexo:

Mujer Hombre

' Actualizar - Mozilla Firefox


: Editar j:::;Vr HiSnriMttMaftadbrS^;:,j%rramtent

'Il!:1:^.^.^ I.)

Rut
Edad: Sexo: Mujer Hombre

La segunda parte es almacenar los datos recuperados desde el formulario:

'
^% -:K^^*.^4 vS^l^-"^>:'.: I i III -:vXl:5l^-rl:' *-sS.i:%Sv-::!

li:ll^WS--:iPl

67 de 85

| f t | | & | | ! ^
i ^

I| | :

|)i^}^|r^^;|il|;*:\-Sl;4J il;lm,'*?|>

fc:||i|K||^j^^

:^;M

i " -!-.^;4:::i '-''S'"^^^'!:?1 . ,^

i'-SSfr- T-V- il?"' 1 1 $ " ' SSi- l^" f.'^>% J.:";/i;,;'.: y

; : ' | | ! | ^

:rf;|:;L.';Sf^^g^|pi^^

i:B8^iflanagSfi

68 de 85

8 3P 69

^^

;}$1

" ' W #.' 1

;^"-^;; ,.-.-. I

\ :-VO;..;y:.::,;; --:^- -/...--^'";1^;.'.:.:.1 ,% Kj S i

:()8 *(u ^3/^i9^)B^tOt|^96-8^ieuijji3B^>aaid)j0B6oi86-je8Btrj

|appst|l

Los datos de prueba son:


Actualizar - Mozlla Firefox
Archivo Editar !er Historial Marcadores Herramientas

i C'

.tir

Rut: Edad: Sexo:

Mujer sHombre

i
f

Servlel Procesalnserar - Mozilta i-s?


Editar Ver Historial Marcadores ; Herramientas

Archivo

if I.i3,..htl:p:'''loa.l.i

SI se actualizo el registro

70 de 85

Los datos en la base de datos son:

iysql> c e l e c t f r o n

1 4 0 0 8 8 0 16000808 17080608 10080808 19086000

25 20 20 38 25 21

6.13 Listar informacin


EL JSP que llama al serviet que proceso los datos:

; ^ i f | l

| | ! l t | ^ ^

!K5|e|ft^

.......

i'gff 1 1; | i "^^:l4^:;;^3^|^:;ll^|j.ii

EL serviet de proceso es:

71 de 85

| | | S f | i | | f ^ ^

lpS:|^|t^

pl^

72 de 85

;|j

73 de 85

s^

El resultado es:

Archivo

Editar

Ver

Historial

Marcadores

Herramientas

Servlet Lislalnformacion - Mozlla rlr


Editar Ver Historial Marcadores Herramientas

Archivo

Edad

j Aos Sexo

14000000! 25 16000000J 20 18000000 30 190000001 25

Mujer | Mujer Hombre! Hombre! Hombre!

[nooooooj 20_j|ombrei (20000000 21

74 de 85

También podría gustarte