El Leguaje Orientación al objeto.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

Acceso a Bases de Datos con Java
Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
ARCHIVOS Y CONEXIÓN A BASE DE DATOS. FileInputStream: Clase que representa ficheros de texto accedidos en orden secuencial, byte a byte. FileWriter: Clase.
Servlets, JSP, JavaBEANS,JDBC
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
Fernando Alonso Nicolás Serrano Servlets con acceso a Bases de Datos 21 de Abril de 2008.
JDBC Java Database Connectivity CC52N - Computación para el trabajo grupal Profesor: Nélson Baloian Por: Edgard Pineda.
Java Data Base Connectivity
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Servlets Servlets son módulos que extienden a servidores “java- enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Servlets Servlets son módulos que extienden a servidores orientados a request/response, como por ejemplo Servidores Web “java-enabled”. Un servlet puede.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Servlets Servlets son módulos que extienden a servidores “java- enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
JDBC. Definición Java Database Conectivity El acceso a bases de datos JDBC implica abrir una conexión ejecutar comandos SQL en un sentencia procesar los.
Temario Java 2 Enterprise Edition Arquitectura Especificación Servlets Contenedores Cookies Sesiones.
VISUALBEE. VisualBee es un software que te permite mejorar tus presentaciones mismos viejos en una presentación llena de gráficos de gran alcance. Para.
Trabajar con SERVLETS. Índice Qué son los Servlets Para qué sirven Cómo se utilizan Ejemplo Cómo probar un Servlet.
Archivos en Java Unidad III – Programación Orientada a Objetos en Java Programación I
UNIDAD DE APRENDIZAJE PROGRAMACION WEB TEMA PHP DOCENTE ING. GUERRERO ULLOA GLEISTON ESTUDIANTES RESPONSABLES PÉREZ KEVIN CUASPUD ANDERSON RODRIGUEZ RANDY.
Francisco Moreno Bases de Datos II Universidad Nacional
Conferencia 9. ODBC, OLE DB y JDBC.
CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático
INSTALACIÓN DEL SISTEMA C.A.N.O.A.
SQL: Structured Query Language
Capítulo 13 Leer archivos JSON con AJAX
Programación orientada a objetos
ECLIPSE.
Métodos y parámetros.
Programación Orientada a Objetos
Stored Procedures Firebird.
BLOQUES.
Polimorfismo y Métodos Virtuales
SQL Prof. Martín Contreras.
Métodos en Java.
Conectividad de Bases de Datos
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
BASES DE DATOS con Libreoffice base
Introducción a Visual Studio .NET
Definición y Conversión de datos
Como elaborar una página HTML
Sesiones 06 de Mayo de 2004 Fernando Alonso Blázquez.
¿Cómo lo vamos a realizar?
PROGRAMACIÓN 1 INTRODUCCIÓN
Curso de Programación Web html, java script
Java – programación orientada a objetos programación ii – iee
Plataformas cliente-servidor
LENGUAJE C.
LEgo Java Operating System (LeJOS)
Como ser inserta un organigrama y como se modifica
Servlets Servlets Son modulos que extienden las funcionalidades de un servidor “java-enabled” Normalmente generan código HTML dinámicamente, el cual se.
Intruccion a la plataforma Java
Parametros enviados por el cliente
Java Database Connectivity JDBC
JDBC: comunicación Java-Base de Datos
Parametros multivalores
SQL1 7/9 Baloian Acceso a Bases de Datos
Otra forma de hacer servlets
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Nelson Baloian Abril/Mayo/Junio 2003
Objetos con linea de ejecucion propia
Desarrollando programas Java con Eclipse
¿Por qué orientación al objeto ?
Prof. Marcos Heredia.  Primitivos y No Primitivos.
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Macros EN EXCEL.
Transcripción de la presentación:

El Leguaje Orientación al objeto

¿Qué es orientación a objeto ? Es solo una manera de organizar el código. No es que ahora se puedan hacer cosas que antes no se podían !!! Los datos que usa un programa se organizan en objetos Los objeos son una colección de variables asociadas a métodos Métodos que modifican las variables o “estado” de un objeto Métodos que retornan valores que reflejan el “estado” del objeto (valor de sus variables)

¿Por qué orientación al objeto ? Una estrategia para poder desarrollar programas más grandes, más libres de errores y en menos tiempo: Software engineering

Java Viene con muchas clases de objetos definidos Vector: un arreglo de objetos sin límite String: para manejar strings FileReader, File Writer, RandomAccessFile: para manejar archivos HashTable: para mantener tablas de hashing Socket: para establecer comunicaciones Etc.

Algunas clases estan definidas a medias!!! La idea es que el programador las completa Applets Servlets Threads EJB (hay varias clases distintas) Etc..

Cómo se define una clase nueva Definir una nueva clase básicamente significa Definición de las variables que contendrá un objeto Definición de los métodos que se le podrán aplicar a un objeto de esta clase La definición de una clase debe ir en un archivo llamado Classname.java Por convención, el nombre de las clases debe empezar con mayúscula Console String Clock Student

Ejemplo: una clase Clok Las variables son las posiciones de los punteros: segundero, minutero y horario Los métodos son para poner los valores y preguntar “¿qué hora es?” Establecer valores de los punteros Preguntar la hora

Dado un nombre preguntar el teléfono El libro telefónico Las variables son listas de números y nombres Los métodos son para registrar un nuevo par (nombre,número), preguntar el teléfono dado un nombre, cambiar un teléfono o borrar un par Poner nuevo par (nombre, número) Cambiar el número dado un nombre Borrar un par (nombre, número) Dado un nombre preguntar el teléfono

El registro de un estudiante Las variables son los datos relevantes del estudiante (nombre, edad, dirección, etc..) Los métodos son para establecer valores y recuperar estos datos Poner valores Name: Sakano Tepe Address: Musashino-shi. Year Born: 1977 Recuperar valores

Clases y objetos Todo objeto es de una cierta clase La clase define el tipo de objeto, esto es: Qué variables contiene Qué métodos pueden ser aplicados a un objeto de esta clase Objecto A de clase clock Clase Clock Objecto B de clase clock

Diseño de los métodos (1) Clock A = new Clock( ); Clock A; A = new Clock(); A.setTime(15,35,45); int i = A.getHour( ); String s = A.getTime() Crea un nuevo objeto Clock Pone los valores en 15, 35 y 45 recupera el valor del puntero horario recupera un String con hh:mm:ss

Diseño de los métodos (2) Phonebook B = new Phonebook( ); B.addEntry(“Simón Vera”,422596160); long l = B.getNumber(“Simón Vera” ); Crea un libro de teléfonos vacío Dados nombre y número como parámetros crea un entry Simón Vera 422596160 Simón Vera Dado un nombre como parámetro recupera el número 422596160

La clase Clock Un Clock tendrá tres variables (attributes, campos) int hours int minutes int seconds Cada vez que se cree un nuevo objeto Clock sus tres variables valdrán 0 (medianoche) El método setTime() va a poner una nueva hora. Este método requerirá tres parámetros: hh, mm, ss También tendremos 3 métodos que retornarán el valor de cada puntero (por ejemplo El método getTime() retorna un String con la hora en el formato hh:mm:ss

Escribamos el archivo Clock Escribamos el archivo Clock.java, compilémolos y usémolos en un programa Clock A = new Clock( ); A.setTime(15,30,20); int h = A.getHour( ); int m = A.getMinutes(); int s = A.getMinutes(); String s = getTime(); hours minutes seconds 15 30 20 Por convención, los nombres de variables y metodos empiezan minúscuas Clock.java ProgramClock1 ProgramClock2

¿ Cómo correr un código Java ? Depende del tipo de código que estemos desarrollando (si es un applet, servelt, etc.) En todo caso siempre se dará que el sistema en el cual el código fue desplegado echará a correr un método especial dentro de la clase Sistema (web container Application container JVW) Evento comando Public class AA { Metodo 1{…. Metodo2{….

El caso más sencillo: stand alone En el caso que queramos echar a andar un programa stand-alone se escribe dentro de la clase un método public static void(main(String args[]) Si echamos a andar la máquina virtual de java con el nombre de una clase existente se llamará a este método java classname Sistema Operativo Java AA public class AA { public staic main(…) JVM main

Desarrollo y ejecución de programas stand-alone 1. Escribir el código fuente en un archivo con extensión Java con un editor de texto 2. Compilarlo con el Compilador (javac) para generar el archivo clase con extensión class 3. Ejecutarlo con la JMV (java) MyProg.java MyProg.class Java source code Java class file Java VM (java) Compilador java (javac)

Desarrollo y ejecución de Applets 1. Escribir el código fuente en un archivo con extensión Java con un editor de texto 2. Compilarlo con el Compilador (javac) para generar el archivo clase con extensión class 3. Ponerlo en el servidor web junto con una página que contengauna referencia al applet (tag) 4. Invocar con un browser la página web

Desarrollo y ejecución de Applets MyApplet.java MyApplet.class Java source code Java class file MyApplet.class Pagina.html Pagina.html Applet tag <applet code=MyApplet.class > <parameters> </applet> Pagina.html MyApplet.class GET Pagina.html

Desarrollo y ejecución de Servlets 1. Escribir el código fuente en un archivo con extensión Java con un editor de texto 2. Compilarlo con el Compilador (javac) para generar el archivo clase con extensión class 3. Ponerlo en el servidor web en el lugar apropiado 4. Invocar con un browser el servlet (directamente o a través de un botón action de un form de HTML)

Desarrollo y ejecución de Servlets MyServlet.java MyServlet.class Java source code Java class file MyServlet.class Código HTML GET MyServlet

Programas Stand alone en el caso de un IDE como NetBeans Abrir la herramienta Crear un proyecto Java Application Crear archivos dentro del proyecto Clases, alguna un metodo main Eventualmente incluir algunas bibliotecas externas Compilarlo Correrlo

Herencia Es una de las cualidades más poderosas de un lenguaje OO Permite extender una clase ya existente (perteneciente al lenguaje o programada por el usuario) Objetos de esta nueva clase también lo serán de la clase que extienden (esto es importante ya que se pueden utilizar en los mismos contextos de la clase original) Ver Clock2 Nueva clase BB extends AA Hereda todos los métodos y variables Declara nuevos métodos y variables Sobreescribe métodos (muchas veces métodos que no hacían nada) Clase Original AA

Heredando clases existentes Como habíamos dicho al principio, herencia se usa para implementar clases especiales en java Dos ejemplos importantes: applets y servlets En java existen estas dos clases que implementan lo básico para que los objetos se comporten como tales Lo que el usuario “completa” es “customizar” la reacción de estos objetos al ser invocados ciertos métodos por el ambiente donde están

Desarrollo y ejecución de Applets 1. Escribir el código fuente en un archivo con extensión Java con un editor de texto 2. Compilarlo con el Compilador (javac) para generar el archivo clase con extensión class 3. Ponerlo en el servidor web junto con una página que contengauna referencia al applet (tag) 4. Invocar con un browser la página web

Desarrollo y ejecución de Applets MyApplet.java MyApplet.class Java source code Java class file MyApplet.class Pagina.html Pagina.html Applet tag <applet code=MyApplet.class > <parameters> </applet> Pagina.html MyApplet.class GET Pagina.html

Activacion de los métodos del Applet Los métodos los activa el browser que los bajó Estos métodos son: init (cuando se carga), start (cuando se muestra), stop (cuando se deja de mostrar por cambio de página o scrolling), destroy (cuando se cierra el browser) Sistema Operativo controles public class AA extends Applet{ public void init(){ ... } public void start() { ... } public void stop() { ... } ... Web Browser (explorer,netscape, etc)

Desarrollo y ejecución de Servlets 1. Escribir el código fuente en un archivo con extensión Java con un editor de texto 2. Compilarlo con el Compilador (javac) para generar el archivo clase con extensión class 3. Ponerlo en el servidor web en el lugar apropiado 4. Invocar con un browser el servlet (directamente o a través de un botón action de un form de HTML)

Desarrollo y ejecución de Servlets MyServlet.java MyServlet.class Java source code Java class file MyServlet.class Código HTML GET MyServlet

Servlets en el caso de un IDE como NetBeans Abrir la herramienta Crear un proyecto web Crear archivos dentro del proyecto servlets,html, JSP Eventualmente incluir algunas bibliotecas externas Compilarlo Correrlo

Un segundo ejemplo Vamos a implementar un web counter Va a contabilizar cuántas veces un servlet de esta clase ha sido creado (init) Cuántas veces han sido llamadas todas las instancias Cuantas veces ha sido llamada la instancia que se contacto ver Count.java

Parámetros desde el cliente Es posible pasar parámetros en la línea de invocación URL http://host:port/servlet?param1=value1&param2=value2.. El servlet puede preguntar por los valores de los parámetros si conoce el nombre de ellos de la siguente manera: String value = req.getParameter(param1); Parámetros pueden ser solamente strings ver ServletParameter1.java invocarlo con http://host:port/ServletParameter1?name=nelson

Lo ideal es hacerlo con Forms Una Form es una página html que puede contener objetos gráficos para recolectar información la que manda al servidor como una URL: Podemos usar el mismo servlet !!!! mirar ServletParameter1.html Ejemplo 2: SubmitResume.java invocado por SubmitResume.html

Session Tracking Session tracking es un mecanismo que pueden los servlets para mantener información acerca del estado de los requests de un usuario durante una sesión Una sesión es un diálogo de una instancia de un browser cliente con el server en un período de tiempo limitado (normalmente 30 minutos). Se pueden asociar objetos de información a la sesión, los cuales se conservan en el servlet La sesión no la maneja el programador sino el el servidor web, el programador la consulta Ver SessionServlet

Algunos métodos HttpSession sesion = request.getSession(true) crea un objeto sesión si no existía sesion.isNew()retorna verdadero si la sesión se creó recientemente sesion.putAttribute/Value(String nombre, Object valor) asocia a la sesión un par nombre-valor (value se usa hasta v2.2) Object o = sesion.getAttribute/Value(“nombre”)retorna el objeto asociado a ese nombre para la sesión sesion.removeAttribute/Value(“nombre”)elimina el objeto asociado a ese nombre para la sesión Enumeration[]valores = sesion.getAttributeNames() String[]valores = sesion.ValueNames() retorna un arreglo/enumeración de nombres de atributos/valores que hay en la sesión long l = sesion.getCreationTime()retorna el tiempo (en milisegundos desde el 1.1.70 0:0:0 ) en que fue creada Long l = sesion.lastAccessedTime() retorna el tiempo del último acceso (en milisegundos) sesion.setMaxInactiveInterval(int seconds)pone el máximo intervalo antes de que automáticamente se destruya la sesión

Usando Cookies Cookies son otra forma con la cual el servlet puede seguirle la pista a un cliente A través de una cookie el selvlet puede mandar información al cliente para que la guarde y la entregue cada vez que lo contacta. Los Servlets envían cookies a los clientes agregando campos al encabezado de respuesta Http que se envía. Los clientes automaticamente retornan cookies cuando contactan a un servidor mandándolo como campos adicionales en los encabezados HTTP request. Cookies los cookies tienen un nombre y un valor (ambos strings) Adicionalmente puede guardar un comentario Un server puede pasar más de una cookie a un cliente.

Usando Cookies Para mandar una cookie 1. Instanciar un objeto Cookie 2. Poner atributos (par nombre-valor) 3. Mandar la cookie Para recuperar la información de una cookie, 1. Recuperar todas las cookies del cliente 2. Encontrar la cookie que se necesita por su nombre 3. Recuperar su valor

Ejemplos de Cookies El ejemplo Cookies.java muestra los tiempos cuando el cliente contactó por primera vez al servlet (vía método doGet) y el tiempo cuando lo contactó oprimiendo un botón que llama al método doPost

¿ Cookies o Sessions ? Con sessions la información la almacena y administra el servidor por lo que el servidor tiene un estado que tiene que administrar cuidadosamente Con Cookies es el cliente el que tiene la información, lo que implica que esta va y viene cada vez que se contacta al servidor El cliente puede prohibir el uso de cookies si quiere

Las JSP Son páginas HTML a las que se le inserta código que produce servlets Se usan cuando la parte estática de la página que se debe generar es relativamente importante (la parte que no cambia) Al cargarse una página JSP esta se compila, se genera el servlet y se ejecuta Por esto, la primera invocación a una JSP demora más que las siguientes

Contenido de una JSP Una JSP, aparte de código HTML puede contener 3 tipos de constructos : Elementos de scripting: son los elementos que definen el comportamiento dinámico del servlet, es decir su código directivas: afectan la estructira general del servlet que resulta de la JSP acciones: permiten redirigir el request a otra instancia JSP, servlet o página HTML

Elementos de scripting 1. Expresiones de la forma <%= expresión %>, son evaluadas e insertadas en el output del servlet 2. Scriptlets de la forma <% code %>, que son insertadas en el método _jspService el cual es el método llamado cuando se contacta a la página jsp 3. Declaraciones de la forma <%! code %>, que son insertadas en el cuerpo de la clase del servlet, fuera de todo método, definiendo así variables de instancia

Variables predefinidas Para simplificar las expresiones, existen variables predefinidas que se pueden usar. Las más importantes son: request, el HttpServletRequest response, el HttpServletResponse session, el HttpSession asociada al request out, el PrintWriter usado para mandar output al cliente

Un Ejemplo (Ejemplo1.jsp) <HTML> <HEAD> <TITLE>JSP Expressions</TITLE> </HEAD> <BODY> <H2>JSP Expressions</H2> <UL> <LI>Current time: <%= new java.util.Date() %> <LI>Your hostname: <%= request.getRemoteHost() %> <LI>Your session ID: <%= session.getId() %> <LI>The <CODE>testParam</CODE> form parameter: <%= request.getParameter("testParam") %> </UL> </BODY> </HTML>

Explicaciones El servidor crea un servlet, lo compila y llama al método _jspService que contiene todas las sentencias escritas entre <% y %> El texto HTML es mandado al cliente por vía out.print(....) Las expresiones se evalúan y se insertan en el texto que se manda, por lo cual la expresión <LI>Current time: <%= new java.util.Date() %> equivaldría en un servlet a hacer out.println(“<LI>Current time: “+ new java.util.Date() );

Java Database Connectivity JDBC JDBC es una API, formada por conjunto de clases e interfaces en el lenguaje de programación Java, para ejecutar sentencias SQL sobre una base de datos (externa). Ofrece un estándar de conexión a cualquier base de datos disponible en el mercado. Permite obtener los datos en forma fácil y cómoda en ambientes cliente-servidor a través de Internet/Intranet.

¿Qué hace JDBC? Permite establecer una conexión a una base de datos. Permite enviar sentencias SQL. Permite procesar los resultados de estas sentencias. Las clases que permiten esto están en el paquete java.sql (hay que importarlo)

Cargando el Driver Es necesario primero cargar una clase con el driver de la base de datos (esto lo provee el vendedor de la DBMS) Ejemplo: Class c = Class.forName(“com.informix.jdbc.IfxDriver"); Calss.forName(“com.novell.sql.LDAPDriver”); Class.forName("com.mysql.jdbc.Driver"); Esto es particular según la base de datos que se usa Luego hay que crear una instancia de la clase c.newInstance();

Estableciendo la Conexión Connection con = DriverManager.getConnection ( url,"login", "password"); Un objeto “Connection” representa una conexión a una base de datos. La clase “DriverManager” intenta ubicar el controlador que pueda conectarse a la base de datos representada en la URL. jdbc:mysql://localhost/test

Enviando sentencias SQL JDBC permite enviar cualquier tipo de sentencia SQL. Aunque ésta fuera dependiente de la base de datos sólo se correría el riesgo de incompatibilidad al cambiar de base de datos.

...Enviando sentencias SQL JDBC provee 3 clases: “Statement”: Este objeto es usado para enviar sentecias SQL simples. Es creado por el método “createStatement”. “PreparedStatement”: Este objeto es usado para sentencias que requieren uno o más parámetros. La sentencia es precompilada y guardada para uso futuro. “CallableStatement”: Es usado para ejecutar procedimientos almacenados en la base de datos.

La clase Statement Statement stmt = con.createStatement(); En este momento la statement existe pero no tiene una sentencia SQL para ejecutar. Esta se puede pasar con los métodos executeUpdate(String), usada para crear/modificar tablas (no hay resultados), típicamente para create, update, delete... executeQuery(String) para hacer consultas, retornan resultados en un objeto de la clase ResultSet, típicamente para select

Ejemplos de excuteUpdate stmt.executeUpdate(“create table alumno (nombre varchar(32), matricula integer, direccion varchar(40), añonac integer, ...); stmt.executeUpdate(“insert into alumnos (‘Valeria Valencia ’, 00998852678, ‘Calle bonita 223 Vitacura Stgo’, 1974, ...); stmt.executeUpdate(“update alumnos set direccion = ‘?????’ where nombre = ‘Valeria Valencia’ ”);

Ejemplos de excuteQuery stmt.executeQuery(“select * from alumnos “ + “where añonac = 1974”); Los resultados de una consulta se reciben en un objeto de la clase ResultSet ResultSet rs = stmt.executeQuery(....); Un ResultSet se puede ver como una enumeración de filas que representan el resultado Existen métodos adecuados para recorrer los elementos de esta enumeración y recuperar los valores de las columnas (campos)

El ResultSet ResultSet rs = stmt.executeQuery(“select nombre where direccion like Santiago”); while (rs.next()) { String s = rs.getString(“nombre”); int y = rs.getInt(“año”); System.out.println(s+” “+y); } ResultSet rs contiene una colección de filas con los resultados de la pregunta. La instrucción next avanza un puntero que indica en qué fila estamos actualmente. Al principio está antes de la primera fila, por lo cual se hace necesario ejecutar un next() para situarse en la primera