1 / 16

Fernando Alonso Nicolás Serrano

Servlets con acceso a Bases de Datos 21 de Abril de 2008. Fernando Alonso Nicolás Serrano. Indice. Repaso de Servlets ¿Qué es un Servlet? Estructura de un Servlet – Ciclo de vida Repaso de JDBC Servlets con acceso a Bases de Datos Ejemplo 1: Escribir en una Base de Datos

tausiq
Download Presentation

Fernando Alonso Nicolás Serrano

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Servlets con acceso a Bases de Datos 21 de Abril de 2008 Fernando AlonsoNicolás Serrano

  2. Indice • Repaso de Servlets • ¿Qué es un Servlet? • Estructura de un Servlet – Ciclo de vida • Repaso de JDBC • Servlets con acceso a Bases de Datos • Ejemplo 1: Escribir en una Base de Datos • Ejemplo 2: Consultar una Base de Datos

  3. 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 HTTP Servidor Web BD BD externa Servlet Aplicación

  4. 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

  5. Objeto HttpServletRequest Objeto HttpServletResponse Estructura de un HttpServlet HttpServlet • Método init() • Se ejecuta una sola vez al inicializar el Servlet • Inicializar variables y operaciones costosas en tiempo de ejecución • Métodos doGet()odoPost() • Recoger peticiones del usuario y ejecutar operaciones • Mandar respuesta al usuario (en forma de HTML) Otros métodos de usuario • Método destroy() • Lo llama el servidor al “apagarse” • Cerrar procesos en curso, liberar memoria, cerrar ficheros

  6. Ejemplo: ServletOpinion.java <?xml version="1.0" encoding="ISO-8859-1" ?> <web-app> <servlet> <servlet-name>Opinion</servlet-name> <servlet-class>ServletOpinion</servlet-class> </servlet> <servlet-mapping> <servlet-name>Opinion</servlet-name> <url-pattern>/opinion</url-pattern> </servlet-mapping> </web-app> ServletOpinion.java

  7. 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

  8. JDBC de forma esquemática ResultSet Statement Aplicación Cliente Connection DriverManager JDBC-ODBC Driver Derby Driver Driver ODBC Driver DerbyDatabase ODBCDatabase Database

  9. Utilización de JDBC 3.0 API 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); }

  10. JDBC con base de datos Derby (opc.) • Se substituyen las líneas: • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); • String url = ″jdbc:odbc:wombat″; • Por las líneas: • Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); • String url = ″jdbc:derby:wombat″;

  11. Estructura de un Servlet con acceso a DB HttpServlet Objeto Connection • Método init() • Establecer conexión con la Base de Datos • Métodos doGet()odoPost() • 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()... • Método destroy() • Cerrar la conexión con la Base de Datos

  12. 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

  13. 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

  14. 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

  15. Ejemplo: SurveyServlet.java (opc.) <?xml version="1.0" encoding="ISO-8859-1"?> <web-app "> <servlet> <servlet-name>Survey</servlet-name> <servlet-class>SurveyServlet</servlet-class> <init-param> <param-name>resultsDir</param-name> <param-value> G:\Java\apache-tomcat-5.5.12\webapps\practicaServlet\tmp </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Survey</servlet-name> <url-pattern>/survey</url-pattern> </servlet-mapping> </web-app>

  16. Servlets con acceso a Bases de Datos 21 de Abril de 2008 Fernando AlonsoNicolás Serrano

More Related