fernando alonso blázquez servlets con acceso a bases de datos 29 de abril de 2004

12
Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Upload: agata-socarras

Post on 14-Apr-2015

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Fernando Alonso Blázquez

Servlets con

acceso a

Bases de Datos

29 de Abril de 2004

Page 2: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Indice

• Repaso de JDBC• Repaso de Servlets

– ¿Qué es un Servlet?– Estructura de un Servlet – Ciclo de vida

• Servlets con acceso a Bases de Datos• Ejemplo 1: Escribir en una Base de

Datos• Ejemplo 2: Consultar una Base de

Datos

Page 3: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

JDBC

• API de Java para ejecutar sentencias SQL• JDBC posibilita básicamente tres cosas:

– Establecer una conexión con una base de datos desde Java

– Enviar sentencias SQL a través de dicha conexión

– Procesar los resultados

• La JDBC 3.0 API comprende 2 paquetes:– java.sql– javax.sql

Page 4: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

JDBC de forma esquemática

ResultSet

Statement

Connection

DriverManager

JDBC-ODBC Bridge

ODBC Driver

ODBC Database

Aplicación Cliente

Page 5: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String url = ″jdbc:odbc:wombat″;Connection con = DriverManager.getConnection(url);

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(″SELECT a, b, c FROM Table2″);

While(rs.next()){ int i = rs.getInt(a); String s = rs.getString(b); Float f = rs.getFloat(c); System.out.println(ROW= + i + + s + + f);}

Utilización de JDBC 3.0 API

Page 6: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Servlets

• Programas en Java que se ejecutan en un servidor HTTP (servidor Web)

• Actúan como capa intermedia entre:– Petición proviniente de un Navegador Web u

otro cliente HTTP– Bases de Datos o Aplicaciones en el servidor

HTTPServidor Web

Servlet

BDexterna

BD

Aplicación

Page 7: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Cuándo y por qué usar Servlets

• Muchas peticiones desde navegador se satisfacen retornando documentos HTML estáticos, es decir, que están en ficheros

• En ciertos casos, es necesario generar las páginas HTML para cada petición:– Página Web basada en datos enviados por

el cliente• Motores de búsqueda, confirmación de pedidos

– Página Web derivada de datos que cambian con frecuencia• Informe del tiempo o noticias de última hora

– Página Web que usa información de bases de datos corporativas u otras fuentes del la parte del servidor• Comercio electrónico: precios y disponibilidades

Page 8: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Estructura de un HttpServlet

HttpServletMétodo init()

•Se ejecuta una sola vez al inicializar el Servlet

•Inicializar variables y operaciones costosas en tiempo de ejecución

Método destroy()

•Lo llama el servidor al “apagarse”

•Cerrar procesos en curso, liberar memoria, cerrar ficheros

Métodos doGet() o doPost()

•Recoger peticiones del usuario y ejecutar operaciones

•Mandar respuesta al usuario (en forma de HTML)

Otros métodos de usuario

Objeto HttpServletReque

st

Objeto HttpServletRespo

nse

Page 9: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Servlets con acceso a Base de Datos• Conexión a Bases de Datos

– Tarea importante y frecuente de los Servlets• Servlets

– Funciones de capa intermedia en sistemas con arquitectura de tres capas

• Ventajas:– Nivel intermedio: control de operaciones

contra la Base de Datos

– Drivers JDBC no tienen que estar en el cliente

– Se puede tener constancia de lo que ha hecho el usuario en peticiones anteriores

– Sincronización de peticiones

Page 10: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Estructura de un Servlet con acceso a DBHttpServlet

Método init()

•Establecer conexión con la Base de Datos

Método destroy()

•Cerrar la conexión con la Base de Datos

Métodos doGet() o doPost()

•Interacción con la Base de Datos

Bien en el propio cuerpo de estos métodos

Bien mediante llamadas a otros métodos de usuario

Otros métodos de usuario: actualizarBaseDeDatos()...

Objeto Connection

Page 11: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Ejemplo 1: Escribir en una Base de Datos

• Base de Datos Access– ServletOpinion2.mdb

• Data Source Name (DSN) – opinion

• Página HTML:– MiServlet2.html

• Servlet– ServletOpinion2.java ->

ServletOpinion2.class

• Arrancar servletrunner.exe

Page 12: Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004

Ejemplo 2: Consultar una Base de Datos

• Base de Datos Access– Alumnos.mdb

• Data Source Name (DSN) – alumnos

• Página HTML:– Formulario2.html

• Servlet– ListaAlumnos.java ->

ListaAlumnos.class

• Arrancar servletrunner.exe