SlideShare una empresa de Scribd logo
1 de 235
Descargar para leer sin conexión
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 01
Agenda de la sesión
   Objetivos y fórmula de evaluación del curso.
   Conceptos relacionados a Internet y al desarrollo
    de aplicaciones Web.
   Herramientas a utilizar en el curso.
   Aplicaciones Web en Tomcat y Servlets.
Objetivos de la sesión
   Aprender los primeros conceptos relacionados a
    Internet y los principales elementos dentro de las
    aplicaciones Web.
   Conocer las herramientas que se utilizarán durante
    el transcurso del curso.
   Mostrar como se estructura una aplicación Web
    dentro de Tomcat.
   Definir, como crear y acceder a Servlets.
Objetivos del curso
   Impartir los principales conceptos, técnicas y
    herramientas para el desarrollo e implementación de
    una aplicación Web con Java.
   Desarrollar en el alumno capacidades para analizar
    situaciones problemáticas y/o generar ventajas
    competitivas basadas en aplicaciones Web con Java
    definidas bajo una arquitectura adecuada.
   Implementar un proyecto que permita al alumno
    desarrollar capacidades de trabajo en equipo, trabajo
    bajo presión, disposición a la investigación y el
    aprendizaje de tecnologías emergentes.
Forma de evaluación del curso
   PF = (0.2 * EF) + (0.2 * EP) + (0.1 * PE) + (0.5 * PL)
    Donde:
    EF: Examen Final Teoría
    EP: Examen Parcial Teoría
    PE: Promedio de Evaluaciones
    PL: Promedio de Laboratorio

   PE = Promedio de controles, trabajos, casos y
    participación en Teoría.
Bibliografía para el curso
   Core J2EE Patterns – Best Practices and Design
    Strategies
    Deepak Alur, John Crupi, Dan Malsk – PrenticeHall

   Java Servlet Specification
    Danny Coward, Yutaka Yoshida – Sun Microsystems

   Base de Datos con Java.
    Mukhar Kevin. Anaya Multimedia.
Conceptos en Internet
   Internet.
   Intranet.
   Nombres de dominio.
   URL.
   HTTP.
Conceptos en Internet
   Internet
    Es una red de redes a escala mundial de
    computadoras que permite comunicar, compartir
    recursos y datos entre sus diferentes usuarios en
    distintas áreas geográficas.
   Intranet
    Es una red interna o red local privada cuyo acceso
    está restringido por un sistema firewall o por un
    usuario y clave que evita las entradas no autorizadas
    en dicha red.
Conceptos en Internet
   Nombres de dominio
    Es un método que sirve para asignar nombres a las
    computadoras a través de una estructura
    jerárquica.
    Los nombres están formados por palabras
    separadas por puntos y cada palabra representa
    un subdominio, generalmente de la siguiente forma:
    nombrehost.subdominio.subdominio.dominioprincipal
    mail.usmp.edu.pe
HTTP
   Hypertext Transfer Protocol (HTTP) es usado para
    transferir o para transportar información a través
    de la Internet.
   El intercambio de información se realiza entre un
    software cliente (un navegador de Internet) y un
    servidor en el otro (un servidor Web), operando
    ambos bajo este protocolo.
   Este uno de los protocolos más utilizado.
HTTP - Transacciones
   HTTP es un protocolo del tipo request/response
    entre los clientes y servidores.
     Request:cuando solicitamos un recurso.
     Response: cuando obtenemos la respuesta del servidor


                 Cliente      Request     Servidor
                             index.html
                   Browser                  Servidor Web


                                              index.html
                             Response
                             index.html
HTTP - Métodos
Típicamente un cliente Web se comunica con un servidor Web
usando los métodos: GET y POST.
GET es usado para pedir información al servidor.

         http://www.hi5.com/buscar.jsp?nombre=juan


   POST es usado para enviar datos al servidor.
         <form action="procesa_datos.jsp" method=“post” name="f_dato">
                 <input type="text" name="nombre">
                 <input type="text" name=“apellido”>
                 <input name="btn_enviar" type="submit" value="Enviar">
         </form>
URL
   Para acceder a algún recurso en Internet es
    necesario ingresar en un navegador una dirección.
   Esta dirección es denominada URL y esta compuesta
    por:
Herramientas
   J2EE
    Java 2 Platform Enterprise Edition es una
    plataforma completa, estable, segura y rápida
    para el desarrollo, despliegue y ejecución de
    aplicaciones empresariales.
    Se compone del JRE y JDK.
   MySQL
    MySQL es un sistema de gestión de base de datos
    relacional.
Herramientas
   Eclipse
    Entorno de desarrollo integrado para desarrollar
    aplicaciones.
   Apache Tomcat
    Contenedor de aplicaciones Web desarrolladas con
    Java que implementa el protocolo HTTP.
Tomcat - Estructura
Aplicaciones en Tomcat
Aplicaciones en Tomcat
   /aplicacion1
    Directorio raíz de la aplicación web; aquí se colocan todos los archivos
    HTML, JSP, etc. que utiliza la aplicación.
    Se pueden crear subdirectorios adicionales.

   /aplicacion1/WEB-INF
    Directorio que contiene todos los recursos relacionados con la aplicación
    web que no son de acceso directo para un cliente (browser). En este
    directorio se coloca el archivo descriptor web.xml.

   /aplicacion1/WEB-INF/classes
    Directorio que contiene todos los servlets y cualquier otra clase de utilidad
    que se necesite. Por lo general contiene sólo archivos compilados .class
Aplicaciones en Tomcat
   Archivo de configuración web.xml
    Conocido como archivo descriptor de la aplicación Web.
    Este archivo xml se ubica dentro del directorio WEB-INF y contiene
    la descripción de la configuración correspondiente a la aplicación
    Web.

   Archivos WAR
    Un archivo WAR (Web ARchive) es la representación de una
    aplicación Web en una unidad única.
    Es el método estándar empleado para empaquetar una aplicación
    Web y dejarla lista para su distribución y acceso a través de
    servidores Web con soporte para servlets y páginas JSP.
Servlets
   Un servlet es un componente J2EE que extiende la
    capacidad de proceso de un servidor y que
    emplea el paradigma request – response, por lo
    tanto:

    “Un servlet es una clase Java que recibe
    requerimientos de un cliente para cumplir con un
    servicio; luego de cumplir con el servicio, envía la
    respuesta hacia el cliente.”
Servlets
Servlets – Ciclo de vida


                            El contenedor Web
                            carga la clase y crea
                            una nueva instancia del
                            Servlet.


                            El contenedor Web
                            inicializa la instancia del
                            Servlet.


El contenedor Web
libera los recursos
utilizados.
Servlets - Ejemplo
Servlets – Registro en web.xml
<web-app>
…
  <servlet>
       <servlet-name>MiServlet</servlet-name>
       <servlet-class>prog1.sesion2.PrimerServlet</servlet-
  class>
  </servlet>

  <servlet-mapping>
      <servlet-name>MiServlet</servlet-name>
      <url-pattern>/helloWorld</url-pattern>
  </servlet-mapping>
…
</web-app>
Servlets
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 02
Agenda de la sesión
   Crear, registrar y acceder a Servlets.
   Servlets: doPost y doGet
   Servlets: HttpServletRequest y HttpServletResponse
   Variables predefinidas.
   Contexto de Servlets
   RequestDispatcher
   Compartir objetos
Objetivos de la sesión
   Repasar la creación, registro y acceso a Servlets.
   Diferenciar los métodos doGet y doPost.
   Recibir datos y enviar respuestas desde Servlets.
   Conocer que es el contexto de Servlets.
   Reenviar y compartir información entre
    componentes Java.
Servlets: crear, registrar y acceder
Servlets: crear, registrar y acceder
<web-app>
…
  <servlet>
       <servlet-name>MiServlet</servlet-name>
       <servlet-class>prog1.sesion2.PrimerServlet</servlet-
  class>
  </servlet>

  <servlet-mapping>
      <servlet-name>MiServlet</servlet-name>
      <url-pattern>/helloWorld</url-pattern>
  </servlet-mapping>
…
</web-app>
Servlets: crear, registrar y acceder
   Apache Software Foundation
       Tomcat X.X
            …
            …
            webapps
                 miaplicacion
                     WEB-INF
                         classes
                             prog1
                                  sesion2
                                   PrimerServlet.class


                                  http://localhost:8080/miaplicacion/helloWorld
Servlets: doGet y doPost

 POST




                           GET
Servlets: HttpServletRequest
   Proporciona la información de la petición (request)
    para los Servlets tanto para el método doGet y
    doPost.
   La información proporcionada viene como pares
    clave-valor y sirven para generar el contenido de
    la respuesta.
Servlets: HttpServletRequest
   public String getParameter(String name)
    Devuelve el valor de un parámetro en función de su
    clave.
        arg0.getParameter(“data”);

   public String[] getParameterValues(String name)
    Devuelve todos los valores de un parámetro
    compuesto.
       arg0.getParameterValues(“data”);
Servlets: doPost
                <input type="text" name="txt_codigo" />
                <input type="text" name="txt_apellido" />
                <input type="text" name="txt_nombre" />

                <input type="radio" name="rb_sexo" value="M" />
                <input type="radio" name="rb_sexo" value=“F" />

                <select name="sel_cursos" size="5" multiple="multiple">
                     <option value="1">Programación 1</option>
                     <option value="2">Ing. de Software 1</option>
                     <option value="3">Ing. de Costos</option>
                     <option value="4">Gestión Financiera</option>
                     <option value="5">Arq. Procesadores</option>
                </select>




                   arg0.getParameter(“txt_codigo”);
            arg0.getParameterValues(“sel_cursos”);
Servlets: doGet
   http://localhost:8080/miapp/
    helloWorld?nombre=juan&apellido=perez

   http://localhost:8080/miapp/
    pagina.jsp?nombre=juan&apellido=perez




                    arg0.getParameter(“nombre”);
Servlets: obteniendo información
package prog1.sesion2;
import javax.servlet.*;
import javax.servlet.http.*;
public class metodosHTTP extends HttpServlet {
    protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) {
          int codigo = Integer.parseInt(arg0.getParameter("codigo"));
    }
    protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) {
          String nombres = arg0.getParameter("txt_nombre");
          String apellidos = arg0.getParameter("txt_apellido");
          String sexo = arg0.getParameter("r_sexo");
    }
}
Ejercicios: registrar Servlet
Ejercicios: registrar Servlet
Ejercicios: Servlets

Pagina noticias.html
                         Pagina registro.html
Contexto de Servlets
   El contexto de un servlet define el entorno en el que
    el servlet se está ejecutando.
   Es el contexto de una aplicación web (webapp).
   Los servlets que pertenecen al mismo contexto
    pueden compartir recursos a traves de los métodos
    getAttribute y setAttribute.
Contexto de Servlets
   A través del ServletContext podemos:
    • Leer parámetros de inicialización de la aplicación.

    • Leer archivos de recursos de la aplicación.

    • Escribir en el archivo de log de la aplicación.

    • Leer y escribir atributos compartidos por todos los
      servlets/jsp‟s.
RequestDispatcher
   El despachador de la petición (RequestDispatcher)
    permite remitir una petición (request) a un componente
    J2EE.
   Es obtenido de la siguiente manera:
        RequestDispatcher rd =
        getServletContext().getRequestDispatcher(“ruta_recurso”);
   Una vez obtenido el objeto RequestDispatcher, invocamos
    al recurso (servlet) enviándole el objeto request.
        Rd.forward(request,response)
Compartir Objetos
   Existen dos formas de compartir objetos entre
    servlets:
     ServletContext, es usado cuando un grupo de servlets
      necesitan trabajar con un mismo objeto.
     HttpServletRequest, es usado cuando al hacer uso de
      una remisión (forward) se necesita compartir un objeto
      entre servlets.
Compartir Objetos
   Métodos:
    •   public Object getAttribute(String name)
    •   public void setAttribute(String name, Object object)
    •   public void removeAttribute(String name)
Compartir Objetos
String mensaje = "texto compartido";
ServletContext sc = getServletConfig().getServletContext();
sc.setAttribute("variablecompartida", mensaje);

                   ServletContext sc2 = getServletConfig().getServletContext();
                   String mensaje = (String)sc2.getAttribute("variablecompartida");




String mensaje = "otro objeto compartido";
arg0.setAttribute("cadenacompartida", mensaje);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/servlet2");
rd.forward(arg0, arg1);

                  String cadena = (String)arg0.getAttribute("cadenacompartida");
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 03
Agenda de la sesión
   Contexto de Servlets
   RequestDispatcher
   Compartir objetos
   JSP
   JavaBean
Objetivos de la sesión
   Conocer que es el contexto de Servlets.
   Reenviar y compartir información entre
    componentes Java.
   Trabajar con paginas JSP.
   Discutir la utilidad de los JavaBeans.
Contexto de Servlets
   El contexto de un servlet define el entorno en el que
    el servlet se está ejecutando.
   Es el contexto de una aplicación web (webapp).
   Los servlets que pertenecen al mismo contexto
    pueden compartir recursos a traves de los métodos
    getAttribute y setAttribute.
Contexto de Servlets
   A través del ServletContext podemos:
    • Leer parámetros de inicialización de la aplicación.

    • Leer archivos de recursos de la aplicación.

    • Escribir en el archivo de log de la aplicación.

    • Leer y escribir atributos compartidos por todos los
      servlets/jsp‟s.
RequestDispatcher
   El despachador de la petición (RequestDispatcher)
    permite remitir una petición (request) a un componente
    J2EE.
   Es obtenido de la siguiente manera:
        RequestDispatcher rd =
        getServletContext().getRequestDispatcher(“ruta_recurso”);
   Una vez obtenido el objeto RequestDispatcher, invocamos
    al recurso (servlet) enviándole el objeto request.
        Rd.forward(request,response)
Compartir Objetos
   Existen dos formas de compartir objetos entre
    servlets:
     ServletContext, es usado cuando un grupo de servlets
      necesitan trabajar con un mismo objeto.
     HttpServletRequest, es usado cuando al hacer uso de
      una remisión (forward) se necesita compartir un objeto
      entre servlets.
Compartir Objetos
   Métodos:
    •   public Object getAttribute(String name)
    •   public void setAttribute(String name, Object object)
    •   public void removeAttribute(String name)
Compartir Objetos
String mensaje = "texto compartido";
ServletContext sc = getServletConfig().getServletContext();
sc.setAttribute("variablecompartida", mensaje);

                   ServletContext sc2 = getServletConfig().getServletContext();
                   String mensaje = (String)sc2.getAttribute("variablecompartida");




String mensaje = "otro objeto compartido";
arg0.setAttribute("cadenacompartida", mensaje);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/servlet2");
rd.forward(arg0, arg1);

                  String cadena = (String)arg0.getAttribute("cadenacompartida");
JSP
   Java Server Pages.
   Al igual que los servlets, permite generar
    contenido dinámico.
   Un JSP tiene código java incrustado en HTML a
    diferencia de los servlets, que pueden generar
    HTML desde código java.
JSP
JSP
   Expresión         : <%=expresión%>
   Código            : <% código %>
   Declaración       : <%! código %>
   Directiva page    :
                      <%@ page atributo=“valor”%>
                      import, session, etc
   Comentario        : <%--comentario--%>
   Directiva include : <%@ include file=“dirección”%>
JSP
   Objeto request.
   Objeto response.
   Objeto session.
   Objeto out.
JSP
   Etiquetas JSP que proporcinan funcionalidad:
     <jsp:forward>
     Redirige el request a otra dirección URL
     <jsp:include>

     Incluye el texto de un fichero dentro de la página
JavaBean
   “Componentes de software reutilizables…”
   Se usan para encapsular varios objetos en un
    único objeto.
   Tiene atributos y métodos.
     Un constructor sin parámetros
     Métodos get y set por cada atributo

     Otro métodos (no tiene restricciones, ni
      características especiales)
JavaBean
public class BeanSaludo{
 String mensaje = null;

 public BeanSaludo() {
       // Constructor sin argumentos
 }
  // . . .
  public String getMensaje() {
      return mensaje;
  }
  public void setMensaje(String mensaje) {
    this. mensaje = mensaje; }
  // . . .
}
JavaBean
   Si una propiedad es de tipo boolean, el método get puede
    ser definido por :
     public boolean is<nombreAtributo>()
     Ejemplo : public boolean isHabilitado();

   Si un atributo tiene un tipo array(<tipoAtributo>[ ]), sus
    métodos deberán ser definidos así:
     public <tipoAtributo> get<nombreAtributo>(int index)
     Ejemplo : String getItem(int index);



     public void set<nombreAtributo>(int index,<tipoAtributo> arg)
     Ejemplo : public void setItem(int index, String valor);
JavaBean
   Si una propiedad es de tipo boolean, el método get puede
    ser definido por :
     public boolean is<nombreAtributo>()
     Ejemplo : public boolean isHabilitado();

   Si un atributo tiene un tipo array(<tipoAtributo>[ ]), sus
    métodos deberán ser definidos así:
     public <tipoAtributo> get<nombreAtributo>(int index)
     Ejemplo : String getItem(int index);



     public void set<nombreAtributo>(int index,<tipoAtributo> arg)
     Ejemplo : public void setItem(int index, String valor);
JSP - JavaBean
   Etiquetas JSP para manipular JavaBean:
     <jsp:useBean>
      Permite manipular un Bean, especificando la clase.
     <jsp:getProperty>

      Obtiene la propiedad especificada de un bean
      previamente declarado y la escribe en el objeto
      response.
     <jsp:setProperty>

      Establece el valor de una propiedad de un bean
      previamente declarado.
JDBC
   Java Database Connectivity.
   Es un API que permite la ejecución de operaciones
    sobre base de datos desde el lenguaje de
    programación JAVA.
   Permite:
     Establecer una conexión con una base de datos o
      acceso a cualquier fuente de datos tabular.
     Enviar sentencias SQL.

     Procesar los resultados.
JDBC

       JDBC - MySQL
       Clases principales
       que se utilizarán
       con un programa
       Java con JDBC.
JDBC
   Cargar el driver
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Class.forName("com.mysql.jdbc.Driver");
   Obtener la conexión
    Connection con =
    DriverManager.getConnection(url, “usuariobd", “passwordbd");
           url = “jdbc:odbc:nombre_bd”
           url = “jdbc:mysql://localhost:3306/nombre_bd”
   Crear la sentencia
       Statement stmt = con.createStatement();
JDBC
   Modificar información
       int filas_afectadas = stmt.executeUpdate(query);


   Recuperando datos
          ResultSet rs = stmt.executeQuery(query);
          while (rs.next()) {
                   String s = rs.getString(“nombre_columna");
                   float n = rs.getFloat(" nombre_columna ");
          }
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 04
Agenda de la sesión
   JDBC
Objetivos de la sesión
   Definir que es JDBC.
   Describir los pasos para conectarse y ejecutar
    sentencias en una base de datos desde Java.
   Ejemplos y ejercicios.
JDBC
   Java Database Connectivity.
   Es un API que permite la ejecución de operaciones
    sobre base de datos desde el lenguaje de
    programación JAVA.
   Permite:
     Establecer una conexión con una base de datos o
      acceso a cualquier fuente de datos tabular.
     Enviar sentencias SQL.

     Procesar los resultados.
JDBC

       JDBC - MySQL
       Clases principales
       que se utilizarán
       con un programa
       Java con JDBC.
JDBC
   Cargar el driver
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Class.forName("com.mysql.jdbc.Driver");
   Obtener la conexión
    Connection con =
         DriverManager.getConnection(url, “usuariobd", “passwordbd");
     url = “jdbc:odbc:nombre_bd”

     url = “jdbc:mysql://localhost:3306/nombre_bd”

   Crear la sentencia
       Statement stmt = con.createStatement();
JDBC
   Modificar información
       int filas_afectadas = stmt.executeUpdate(query);



   Recuperando datos
        ResultSet rs = stmt.executeQuery(query);
          while (rs.next()) {
                  String s = rs.getString(“nombre_columna");
                  float n = rs.getFloat(" nombre_columna ");
          }
JDBC
JDBC
JDBC
Ejercicios - JDBC
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 04
Agenda de la sesión
   JDBC
Objetivos de la sesión
   Definir que es JDBC.
   Describir los pasos para conectarse y ejecutar
    sentencias en una base de datos desde Java.
   Ejemplos y ejercicios.
JDBC
   Java Database Connectivity.
   Es un API que permite la ejecución de operaciones
    sobre base de datos desde el lenguaje de
    programación JAVA.
   Permite:
     Establecer una conexión con una base de datos o
      acceso a cualquier fuente de datos tabular.
     Enviar sentencias SQL.

     Procesar los resultados.
JDBC

       JDBC - MySQL
       Clases principales
       que se utilizarán
       con un programa
       Java con JDBC.
JDBC
   Cargar el driver
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       Class.forName("com.mysql.jdbc.Driver");
   Obtener la conexión
    Connection con =
         DriverManager.getConnection(url, “usuariobd", “passwordbd");
     url = “jdbc:odbc:nombre_bd”

     url = “jdbc:mysql://localhost:3306/nombre_bd”

   Crear la sentencia
       Statement stmt = con.createStatement();
JDBC
   Modificar información
       int filas_afectadas = stmt.executeUpdate(query);



   Recuperando datos
        ResultSet rs = stmt.executeQuery(query);
          while (rs.next()) {
                  String s = rs.getString(“nombre_columna");
                  float n = rs.getFloat(" nombre_columna ");
          }
JDBC
JDBC
JDBC
Ejercicios - JDBC
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 06
Agenda de la sesión
   Sesiones
Objetivos de la sesión
   Definir que son las sesiones
   Cuando utilizar sesiones
Ejercicios
   ¿Qué se necesita para implementar la
    funcionalidad de login de una aplicación?
     Pagina  login.html / login.jsp
     Servlet Login
Ejercicios
<form name="frm_registro” method="post" action="">
    <input type="text" name="txt_usuario" />
    <input type=“password” name="txt_clave" />

    <input type="submit" name="btn_grabar" value="Grabar" />
</form>
Ejercicios
   Información del formulario
    usuario = request.getParameter(“txt_usuario”);
    clave = request.getParameter(“txt_clave”);
Ejercicios
   Conectarse a base de datos
    try{
      Class.forName(“com.mysql.jdbc.Driver”);
      String url = “jdbc:mysql://localhost:3306/basedatos”;
      Connection con =
                DriverManager.getConnection(url, “usu”,
      “pass”);
      Statement stmt = con.createStatement();
      …diapositiva siguiente…
    }catch(Execption e){
      out.print(e.getMessage());
Ejercicios - JDBC
   Validar el usuario y clave
    Resulset resultado=
         stmt.executeUpdate(“SELECT nombre FROM usuario
         WHERE usuario=„”+usuario +“‟
         AND clave=„”+clave +“‟”);
    boolean flag = false;
    while(resultado.next()){
         flag = true;
    }
Sesiones
   Nos permite identificar a un usuario mientras
    mantiene interacciones con un sitio Web.

   Podemos guardar información relevante que
    nos identifique a un usuario en particular.
Sesiones
   HttpSession misesion =
        request.getSession(true);

   <%@ page session="true"%>
Sesiones
   Para almacenar objetos en una sesión:
        String micorreo="correo@dominio.com";
        misesion.setAttribute("uncorreo", micorreo);

   Para obtener un objeto dentro de una sesión:
        misesion.getAttribute("uncorreo");

   Para eliminar un objeto dentro de una sesión:
        misesion.removeAttribute("uncorreo");

   Para eliminar todos los objetos dentro de una sesión:
        misesion.invalidate();
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 07
Agenda de la sesión
   Transacciones
   ACID
Objetivos de la sesión
   Cuando se deben utilizar transacciones
   Definir el concepto de ACID
Transacciones
 Una transacción es un conjunto de sentencias
  que han sido ejecutadas y
  confirmadas/revertidas.
 Luego de ejecutar las sentencias:

     Para  confirmar se utiliza el método commit.
     Para eliminar todos los cambios realizados desde el
      último commit se utiliza el método rollback.
Transacciones
   Por defecto, todas las conexiones a base de
    datos tienen el modo auto-commit activado,
    por lo tanto, al ejecutar el método
    executeUpdate se completa una transacción.
Transacciones

 Connection con = DriverManager.getConnection(...);
 con.setAutoCommit(false);
 Statement s = con.createStatement();
    s.executeUpdate("SQL statement 1");
    s.executeUpdate("SQL statement 2");
    s.executeUpdate("SQL statement 3");
 con.commit();
ACID
 Es uno de los conceptos mas importantes dentro
  del mundo de base de datos.
 Son 4 características que todo sistema de

  gestión de base de datos debe alcanzar:
     Atomicity.

     Consistency.

     Isolation.

     Durability.
ACID
   Atomicity: puede definirse como la regla del todo
    o nada, en el caso de transacciones, si una parte
    falla, por consecuencia toda la transacción falla.

   Consistency: sólo los datos válidos serán
    guardados a base de datos, las transacciones no
    deben violar las reglas de consistencia.
ACID
   Isolation: las transacciones que ocurren al mismo
    tiempo no alteren la ejecución de otras, la ejecución
    de dos transacciones sobre la misma información no
    debe generar ningún error.

   Durability: propiedad que asegura que una vez
    realizada la transacción, sus efectos persistirán.
Ejercicios - JDBC
 int fila_afectada =
       stmt.executeUpdate(“INSERT into alumno (codigo,
       apellidos, nombres, sexo, carrera, observaciones)
       VALUES(`“+cod+”´, `“+ape+”´, `“+nom+”´,
       `“+sex +”´, `“+car+”´, `“+obs+”´)”);
 if(filas_afectada == 1){
     …
     // commit
 }else{
     // rollback
 }
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 10
Agenda de la sesión
   Frameworks
   Patrones
   Modelos de aplicación
   MVC
Objetivos de la sesión
   Definir el concepto de Frameworks y su relación con
    los patrones.
   Conocer los modelos de aplicaciones Web.
Frameworks
   Casi siempre se buscan maneras para simplificar el
    desarrollo de proyectos que usan tecnologías y
    estructuras similares, en este caso, aplicaciones para
    Web.
   Existen cientos de Frameworks (marcos de trabajo)
    creados para el desarrollo de aplicaciones Web
    con Java y casi todos aplican el diseño de
    aplicaciones MVC.
Frameworks
   Se podría decir que:
     Es  un conjunto de componentes que componen un diseño
      reutilizable que facilita y agiliza el desarrollo de
      sistemas Web.
     Es una colección de clases e interfases que modelan
      una aplicación genérica definiendo una arquitectura
      para la aplicación, se componen de patrones.
   Los objetivos principales de un Framework son:
     Acelerar  el proceso de desarrollo.
     Reutilizar código ya existente.

     Promover buenas prácticas de desarrollo.
Frameworks
Cosas a tomar en cuenta:
   Tipo de aplicación a desarrollar
   Facilidad de uso/desarrollo
   Comunidad detrás del proyecto
   Futuro del proyecto
   Mantenimiento
   Características técnicas
   Rendimiento
   Documentación
Frameworks
   Struts
   Spring
   Hibernate
   Tapestry
   Cocoon
   Google Web Toolkit
Patrones
   Son una abstracción de una solución a un alto nivel,
    proveen solución a problemas de diseño
    concurrentes o comunes.
   Nos permiten la reutilización de componentes y
    mayor eficiencia en la ejecución de los mismos.
Patrones
   La difusión de los patrones de diseño comenzó a
    darse luego de la publicación del libro “Design
    Patterns: Elements of Reusable Object Oriented
    Software” escrito por Gang of Four (GoF), en
    donde documentaron 23 patrones de diseño.
   Clasificándolos en 3 grandes categorías:
     Creacionales

     Estructurales

     Comportamiento
Modelos de aplicación


               JSP
     Browser




                        BD

               Bean
Modelo de aplicación 1
   Cantidad de código JAVA dentro de las páginas
    JSP.
   Problema para los diseñadores.
   Aplicaciones difíciles de mantener.
   Dificultad en presentar la aplicación en diferentes
    vistas (interfases) como HTML, WML, XML, etc.

Recomendación:
Utilizar el Modelo 1 para aplicaciones simples o cuando se
necesite obtener la aplicación rápidamente.
Modelo de aplicación 2
   Es un alcance combinado para servir contenido
    dinámico, combina el uso de Servlets y JSP.
   Separa la presentación del contenido.
   Los JSP se encargan de la presentación y los
    Servlets del procesamiento de tareas.



Recomendación:
Utilizarlo para aplicaciones medianas o grandes y
aplicaciones que crecerán en complejidad en el futuro.
MVC
   Es el patrón de diseño arquitectónico recomendado
    para el desarrollo de aplicaciones interactivas.
   Organiza la aplicación dentro de 3 capas
    separadas:
     Modelo

     Vista

     Controlador
MVC
   Modelo
    Representa los datos de la aplicación y sus reglas
    de negocio.
   Vista
    Conjunto de vistas que básicamente representa los
    formularios de entrada y salida de información.
   Controlador
    Conjunto de controladores que procesa las
    peticiones de los usuarios y controla el flujo de la
    aplicación.
MVC
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 11
Agenda de la sesión
   MVC
   DAO
Objetivos de la sesión
   Reforzar el concepto MVC.
   Definir y analizar el uso del patrón DAO.
MVC
MVC



      Bienvenidos a la Tienda Virtual
MVC
MVC
MVC
DAO
   Las aplicaciones trabajan con diversos orígenes
    de datos y su acceso depende del tipo de
    almacenamiento o del proveedor.
DAO
   Ayuda a encapsular la forma de acceso a la
    fuente de datos, administra la conexión con la
    fuente de datos para obtener y almacenar los
    datos.
   Permite adaptar a diferentes esquemas de
    almacenamiento sin afectar a los cliente o
    componentes de negocio, DAO actúa como un
    adaptador entre los componentes y el origen
    de datos.
DAO
   El objetivo es que la aplicación se centre en los
    datos que se utilizan y no se preocupe de cuál
    es su fuente de almacenamiento y como se
    realiza el acceso.
DAO


                         uses                             encapsula
BusinessObject                  DataAccessObject                      DataSource




                                         Crea / utiliza


    Obtiene / modifica
                                  TransferObject
DAO

                               I-ClienteDAO




  Client               usa   MySqlClienteDAO           encapsula   MYSQL




                                      crea / utiliza

  obtiene / modifica
                               ClienteBean
DAO
/tiendavirtual
   src
     beans
     dao
     servlets
     util

   WebContent
           index.jsp
           login.jsp
           productos.jsp
           carrito.jsp
DAO
/tiendavirtual
   src
     beans
             ProductoBean
     dao
           MySqlDAO
           ProductoDAO
           MySql_ProductoDAO

     servlets
             ServletCompra
     util
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 12
Agenda de la sesión
   DAO
   DAOFactory
Objetivos de la sesión
   Reforzar el concepto de DAO en base a ejemplos.
   Conceptos de DAOFactory.
   Mostrar las diferencias entre DAO y DAOFactory.
DAO

                               I-ClienteDAO




  Client               usa   MySqlClienteDAO           encapsula   MYSQL




                                      crea / utiliza

  obtiene / modifica
                               ClienteBean
DAO
/tiendavirtual
   src
     beans
     dao
     servlets
     util

   WebContent
           index.jsp
           login.jsp
           productos.jsp
           carrito.jsp
DAO
/tiendavirtual
   src
     beans
             ProductoBean
     dao
           MySqlDAO
           ProductoDAO
           MySql_ProductoDAO

     servlets
             ServletCompra
     util
DAO - ProductoBean
DAO - MySqlDAO
DAO - ProductoDAO
DAO - MySql_ProductoDAO
DAO - Compras
DAO - productos.jsp
DAOFactory

            MYSQLDAO                                SQLDAO




MySqlClienteDAO   MySqlProductoDAO   SqlClienteDAO      SqlProductoDAO




  I-ClienteDAO     I-ProductoDAO     I-ClienteDAO        I-ProductoDAO
DAOFactory

                       DAOFactory




    MySqlDAOFactory   SqlDAOFactory     OracleDAOFactory




   MySqlProductoDAO   SqllProductoDAO   OraclelProductoDAO




                       lProductoDAO
DAOFactory
/tiendavirtual
   src
     beans
             ProductoBean
     dao
           iface
               ProductoDAO
           mysql
               MySql_ProductoDAO

     daofactory
           DAOFactory
           MySqlDAOFactory
     servlets
             ServletCompra
DAOFactory
DAOFactory
DAOFactory
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 13
Agenda de la sesión
   DAOFactory
   Ejercicios
Objetivos de la sesión
   Reforzar el concepto de DAOFactory.
   Ejercicios DAOFactory.
DAOFactory

            MYSQLDAO                                SQLDAO




MySqlClienteDAO   MySqlProductoDAO   SqlClienteDAO      SqlProductoDAO




  I-ClienteDAO     I-ProductoDAO     I-ClienteDAO        I-ProductoDAO
DAOFactory

                       DAOFactory




    MySqlDAOFactory   SqlDAOFactory     OracleDAOFactory




   MySqlProductoDAO   SqllProductoDAO   OraclelProductoDAO




                       lProductoDAO
DAOFactory
/tiendavirtual
     src
       beans
               CategoriaBean
       dao
               iface
                    CategoriaDAO
               mysql
                    MySql_CategoriaDAO

       daofactory
               DAOFactory
               MySqlDAOFactory
       servlets
               Categorias
     WebContent
         categorias.jsp
DAOFactory - CategoriaBean
DAOFactory - CategoriaDAO
DAOFactory – MySql_CategoriaDAO
DAOFactory – DAOFactory
DAOFactory – MySqlDAOFactory
DAOFactory – Categorias
DAOFactory – categorias.jsp
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 14
Agenda de la sesión
   JavaScript
Objetivos de la sesión
   Definir el concepto de JavaScript
   Conocer la sintaxis JavaScript
   Mostar la ubicación del código JavaScript
JavaScript
JavaScript
   Es un lenguaje de programación utilizado en
    paginas Web.
   Tiene una sintaxis similar a Java.
   Es reconocido y ejecutado por todos los
    navegadores.
JavaScript
   Es un lenguaje que responde a eventos.
   Va incrustado dentro de las paginas html.
   Realiza acciones en el cliente (browser).
   Diseñado para agregar interactividad en las
    paginas html.
JavaScript
   window
     history

     location

     document

     form
       button,   checkbox, hidden, radio, text, select (options),
       etc
     frame

   navigator
JavaScript
JavaScript
JavaScript
JavaScript - windows
   Algunas propiedades
     closed,  indica si la venta esta cerrada.
     frames, un array que contiene los frames de la
      ventana.
     history, representa las URLs visitadas.
     location, contiene la URL de la barra de dirección.
     opener, referencia al objeto window que lo abrió.
     status, cadena de la barra de estado.
JavaScript
   Algunos métodos
     alert, muestra un mensaje.
     close(), cierre el objeto window actual.
     open(URL, nombre, propiedades), abre una URL en una
      ventana.
     scroll(x,y), desplaza las coordenadas del cursor.
JavaScript
JavaScript - document
   Algunas propiedades
     bgColor,     color de fondo del documento.
     forms, es un array con todos los formularios del
      documento.
     images, es un array con todas las imágenes del
      documento.
     title, titulo del documento actual.
Frameworks JavaScript
   MooTools
   jQuery
   Prototype
   Dojo
   Script.aculo.us
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 15
Agenda de la sesión
   AJAX
   XML y RSS
Objetivos de la sesión
   Conocer nuevas técnicas de desarrollo Web
   Resumen DaoFactory
XML
   Extensible Markup Language (lenguaje de marcas
    extensible).
   Se propone como un estándar para el intercambio
    de información estructurada entre diferentes
    plataformas.
   Permite la compatibilidad entre sistemas para
    compartir información.
XML
<?xml version="1.0" encoding=“utf-8" ?>
  <ciclo>
       <curso>
             <nombre>Programación I</nombre>
             <seccion>30F</seccion>
       </curso>
       <curso>
             <nombre>Programación I</nombre>
             <seccion>32F</seccion>
       </curso>
  </ciclo>
RSS
   Acrónimo de Really Simple Sindication.
   Se utiliza para brindarle información actualizada
    de una Web a usuarios o sistemas.
   Para leer los contenidos de un RSS es necesario un
    software especial (agregador/lectores).
AJAX
   Acrónimo de Asynchronous JavaScript and XML
    (JavaScript asíncrono y XML)
   Técnica de desarrollo Web para crear mejores, mas
    rápidas e interactivas aplicaciones Web.
   Se puede utilizar bajo varias plataformas y en
    muchos sistemas operativos y navegadores.
   Es una combinación de JavaScript y XML
AJAX
   Es un conjunto de tecnologías:
     XHTML  y CSS
     Document Object Model

     XML y XSLT

     XMLHttpRequest

     JavaScript
AJAX - Peticiones tradicionales
   El cliente/usuario realiza una petición (request) al
    servidor a través de un browser.
   El servidor recibe la petición, procesa la solicitud y
    devuelve una respuesta (response), generalmente
    HTML.
   El browser procesa y muestra la respuesta.
AJAX - Peticiones Ajax
   El cliente/usuario haciendo uso del browser produce
    algún evento procesado por JavaScript que se
    encarga de realizar la petición (request) al
    servidor.
   El servidor recibe la petición, procesa la solicitud y
    devuelve una respuesta en XML.
   El JavaScript procesa la respuesta para actualizar
    la página, sin necesidad de recargarla.
AJAX
AJAX
AJAX - Ventajas
   Las páginas no se recargan completamente por
    cada acción del usuario.
   El tiempo de espera y carga de una pagina puede
    ser menor.
AJAX - Desventajas
   No se puede mantener la acción de “retroceder”
    que tienen los browsers.
   Solo funciona si los browser tienen habilitado la
    ejecución JavaScript
   Los usuarios pueden ver una carga de rendimiento
    en sus maquinas.
AJAX - Desventajas
   http://www.jamesdam.com/ajax_login/login.html
   http://joeabiraad.com/demos/ajax2/
   http://www.ajaxdaddy.com/
PROGRAMACIÓN I
                    2009-I
             Docente : Ing. Carlos A. Quinto Cáceres
                     Correo : cquinto@usmp.edu.pe
Semana 15
Agenda de la sesión
   Temas del curso
Objetivos de la sesión
   Resumen de la 2da parte del curso
Frameworks
   Se podría decir que:
     Es  un conjunto de componentes que componen un diseño
      reutilizable que facilita y agiliza el desarrollo de
      sistemas Web.
     Es una colección de clases e interfases que modelan
      una aplicación genérica definiendo una arquitectura
      para la aplicación, se componen de patrones.
   Los objetivos principales de un Framework son:
     Acelerar  el proceso de desarrollo.
     Reutilizar código ya existente.

     Promover buenas prácticas de desarrollo.
Patrones
   Son una abstracción de una solución a un alto nivel,
    proveen solución a problemas de diseño
    concurrentes o comunes.
   Nos permiten la reutilización de componentes y
    mayor eficiencia en la ejecución de los mismos.
   Se clasificaron en 3 grandes categorías:
     Creacionales

     Estructurales

     Comportamiento
MVC
DAO
   Ayuda a encapsular la forma de acceso a la
    fuente de datos, administra la conexión con la
    fuente de datos para obtener y almacenar los
    datos.
   Permite adaptar a diferentes esquemas de
    almacenamiento sin afectar a los cliente o
    componentes de negocio, DAO actúa como un
    adaptador entre los componentes y el origen
    de datos.
DAO

                               I-ClienteDAO




  Client               usa   MySqlClienteDAO           encapsula   MYSQL




                                      crea / utiliza

  obtiene / modifica
                               ClienteBean
DAO
/tiendavirtual
   src
     beans
             ProductoBean
     dao
           MySqlDAO
           ProductoDAO
           MySql_ProductoDAO

     servlets
             ServletCompra
     util
DAO - MySqlDAO
DAO - ProductoDAO
DAO - MySql_ProductoDAO
DAO - Compras
DAOFactory

            MYSQLDAO                                SQLDAO




MySqlClienteDAO   MySqlProductoDAO   SqlClienteDAO      SqlProductoDAO




  I-ClienteDAO     I-ProductoDAO     I-ClienteDAO        I-ProductoDAO
DAOFactory

                       DAOFactory




    MySqlDAOFactory   SqlDAOFactory     OracleDAOFactory




   MySqlProductoDAO   SqllProductoDAO   OraclelProductoDAO




                       lProductoDAO
DAOFactory
/tiendavirtual
     src
       beans
               CategoriaBean
       dao
               iface
                    CategoriaDAO
               mysql
                    MySql_CategoriaDAO

       daofactory
               DAOFactory
               MySqlDAOFactory
       servlets
               Categorias
     WebContent
         categorias.jsp
DAOFactory - CategoriaBean
DAOFactory - CategoriaDAO
DAOFactory – MySql_CategoriaDAO
DAOFactory – DAOFactory
DAOFactory – MySqlDAOFactory
DAOFactory – Categorias
DAOFactory – categorias.jsp
JavaScript
   Tiene una sintaxis similar a Java.
   Es reconocido y ejecutado por todos los
    navegadores.
   Es un lenguaje que responde a eventos.
   Va incrustado dentro de las paginas html.
   Realiza acciones en el cliente (browser).
   Diseñado para agregar interactividad en las
    paginas html.
XML
   Extensible Markup Language (lenguaje de marcas
    extensible).
   Se propone como un estándar para el intercambio
    de información estructurada entre diferentes
    plataformas.
   Permite la compatibilidad entre sistemas para
    compartir información.
RSS
   Acrónimo de Really Simple Sindication.
   Se utiliza para brindarle información actualizada
    de una Web a usuarios o sistemas.
   Para leer los contenidos de un RSS es necesario un
    software especial (agregador/lectores).
AJAX
   Acrónimo de Asynchronous JavaScript and XML
    (JavaScript asíncrono y XML)
   Es un conjunto de tecnologías:
     XHTML  y CSS
     Document Object Model

     XML y XSLT

     XMLHttpRequest

     JavaScript
AJAX
Programacion web java
Programacion web java
Programacion web java

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
 
Programación web con JSP
Programación web con JSPProgramación web con JSP
Programación web con JSP
 
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRs
 
Tutorial jsp
Tutorial jspTutorial jsp
Tutorial jsp
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)
 
Servicios web
Servicios webServicios web
Servicios web
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
Curso Java Avanzado 3 4 Js Ps Con Java Beans
Curso Java Avanzado   3 4 Js Ps Con Java BeansCurso Java Avanzado   3 4 Js Ps Con Java Beans
Curso Java Avanzado 3 4 Js Ps Con Java Beans
 
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
 
Resumen jee
Resumen jeeResumen jee
Resumen jee
 
Curso Jsp Mas
Curso Jsp MasCurso Jsp Mas
Curso Jsp Mas
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
JDBC
JDBCJDBC
JDBC
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBoss
 
STRUTS (MVC e Java)
STRUTS (MVC e Java)STRUTS (MVC e Java)
STRUTS (MVC e Java)
 

Destacado (19)

Java Web Lección 03 - MVC
Java Web Lección 03 - MVCJava Web Lección 03 - MVC
Java Web Lección 03 - MVC
 
Modelo Java Enterprise Edition
Modelo Java Enterprise EditionModelo Java Enterprise Edition
Modelo Java Enterprise Edition
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Clases Anidadas
Clases AnidadasClases Anidadas
Clases Anidadas
 
Guia de estudio OCA Java SE 7 Programmer
Guia de estudio OCA Java SE 7 ProgrammerGuia de estudio OCA Java SE 7 Programmer
Guia de estudio OCA Java SE 7 Programmer
 
Clases Anidadas en java
Clases Anidadas en javaClases Anidadas en java
Clases Anidadas en java
 
Curso de-jsp-avanzado by-priale
Curso de-jsp-avanzado by-prialeCurso de-jsp-avanzado by-priale
Curso de-jsp-avanzado by-priale
 
Tema4 apartado4.2
Tema4 apartado4.2Tema4 apartado4.2
Tema4 apartado4.2
 
JSP
JSP JSP
JSP
 
Comunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSPComunicacion entre formularios HTML y paginas JSP
Comunicacion entre formularios HTML y paginas JSP
 
JSP
JSPJSP
JSP
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 
Comenzando con GWT
Comenzando con GWTComenzando con GWT
Comenzando con GWT
 
Proceso MDA y Scrum
Proceso MDA y ScrumProceso MDA y Scrum
Proceso MDA y Scrum
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Desarrollo de aplicaciones web con Google Web Toolkit
Desarrollo de aplicaciones web con Google Web ToolkitDesarrollo de aplicaciones web con Google Web Toolkit
Desarrollo de aplicaciones web con Google Web Toolkit
 
Introduccion Aplicaciones Web en java j2ee
Introduccion Aplicaciones Web en java j2ee Introduccion Aplicaciones Web en java j2ee
Introduccion Aplicaciones Web en java j2ee
 
Aplicaciones de escritorio con base de datos
Aplicaciones de escritorio con base de datosAplicaciones de escritorio con base de datos
Aplicaciones de escritorio con base de datos
 
Frameworks Java
Frameworks JavaFrameworks Java
Frameworks Java
 

Similar a Programacion web java

[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Robert Rayco Quiroz
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Javaalvaro alcocer sotil
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-googleJosue Hernandez
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
Proyecto Avatar - JavaScript sobre la JVM del servidor
Proyecto Avatar - JavaScript sobre la JVM del servidorProyecto Avatar - JavaScript sobre la JVM del servidor
Proyecto Avatar - JavaScript sobre la JVM del servidorCarlos Martín Martínez
 
Presentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBPresentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBploncan24
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperOscar V
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicionFlashnet S.A
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptBYRONMIGUELSUBUYUCPA
 

Similar a Programacion web java (20)

[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
Charla
CharlaCharla
Charla
 
Servlet
ServletServlet
Servlet
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-google
 
servlets
servlets servlets
servlets
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Proyecto Avatar - JavaScript sobre la JVM del servidor
Proyecto Avatar - JavaScript sobre la JVM del servidorProyecto Avatar - JavaScript sobre la JVM del servidor
Proyecto Avatar - JavaScript sobre la JVM del servidor
 
Presentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBPresentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEB
 
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component DeveloperGuia de estudio para Oracle Certified Java EE 6 Web Component Developer
Guia de estudio para Oracle Certified Java EE 6 Web Component Developer
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 

Más de César Ocampo

Más de César Ocampo (6)

Informe final proyecto de TI
Informe final proyecto de TIInforme final proyecto de TI
Informe final proyecto de TI
 
Routers
 Routers Routers
Routers
 
Servis desk ejemplo con ITIL
Servis desk  ejemplo con ITILServis desk  ejemplo con ITIL
Servis desk ejemplo con ITIL
 
Subnetting
SubnettingSubnetting
Subnetting
 
Antenas caseras WI-FI
Antenas caseras WI-FIAntenas caseras WI-FI
Antenas caseras WI-FI
 
PROYECTO
PROYECTOPROYECTO
PROYECTO
 

Último

Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxhellendiaz12
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6SaraMineiropalacio
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 

Último (18)

Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 

Programacion web java

  • 1. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 01
  • 2. Agenda de la sesión  Objetivos y fórmula de evaluación del curso.  Conceptos relacionados a Internet y al desarrollo de aplicaciones Web.  Herramientas a utilizar en el curso.  Aplicaciones Web en Tomcat y Servlets.
  • 3. Objetivos de la sesión  Aprender los primeros conceptos relacionados a Internet y los principales elementos dentro de las aplicaciones Web.  Conocer las herramientas que se utilizarán durante el transcurso del curso.  Mostrar como se estructura una aplicación Web dentro de Tomcat.  Definir, como crear y acceder a Servlets.
  • 4. Objetivos del curso  Impartir los principales conceptos, técnicas y herramientas para el desarrollo e implementación de una aplicación Web con Java.  Desarrollar en el alumno capacidades para analizar situaciones problemáticas y/o generar ventajas competitivas basadas en aplicaciones Web con Java definidas bajo una arquitectura adecuada.  Implementar un proyecto que permita al alumno desarrollar capacidades de trabajo en equipo, trabajo bajo presión, disposición a la investigación y el aprendizaje de tecnologías emergentes.
  • 5. Forma de evaluación del curso  PF = (0.2 * EF) + (0.2 * EP) + (0.1 * PE) + (0.5 * PL) Donde: EF: Examen Final Teoría EP: Examen Parcial Teoría PE: Promedio de Evaluaciones PL: Promedio de Laboratorio  PE = Promedio de controles, trabajos, casos y participación en Teoría.
  • 6. Bibliografía para el curso  Core J2EE Patterns – Best Practices and Design Strategies Deepak Alur, John Crupi, Dan Malsk – PrenticeHall  Java Servlet Specification Danny Coward, Yutaka Yoshida – Sun Microsystems  Base de Datos con Java. Mukhar Kevin. Anaya Multimedia.
  • 7. Conceptos en Internet  Internet.  Intranet.  Nombres de dominio.  URL.  HTTP.
  • 8. Conceptos en Internet  Internet Es una red de redes a escala mundial de computadoras que permite comunicar, compartir recursos y datos entre sus diferentes usuarios en distintas áreas geográficas.  Intranet Es una red interna o red local privada cuyo acceso está restringido por un sistema firewall o por un usuario y clave que evita las entradas no autorizadas en dicha red.
  • 9. Conceptos en Internet  Nombres de dominio Es un método que sirve para asignar nombres a las computadoras a través de una estructura jerárquica. Los nombres están formados por palabras separadas por puntos y cada palabra representa un subdominio, generalmente de la siguiente forma: nombrehost.subdominio.subdominio.dominioprincipal mail.usmp.edu.pe
  • 10. HTTP  Hypertext Transfer Protocol (HTTP) es usado para transferir o para transportar información a través de la Internet.  El intercambio de información se realiza entre un software cliente (un navegador de Internet) y un servidor en el otro (un servidor Web), operando ambos bajo este protocolo.  Este uno de los protocolos más utilizado.
  • 11. HTTP - Transacciones  HTTP es un protocolo del tipo request/response entre los clientes y servidores.  Request:cuando solicitamos un recurso.  Response: cuando obtenemos la respuesta del servidor Cliente Request Servidor index.html Browser Servidor Web index.html Response index.html
  • 12. HTTP - Métodos Típicamente un cliente Web se comunica con un servidor Web usando los métodos: GET y POST. GET es usado para pedir información al servidor. http://www.hi5.com/buscar.jsp?nombre=juan  POST es usado para enviar datos al servidor. <form action="procesa_datos.jsp" method=“post” name="f_dato"> <input type="text" name="nombre"> <input type="text" name=“apellido”> <input name="btn_enviar" type="submit" value="Enviar"> </form>
  • 13. URL  Para acceder a algún recurso en Internet es necesario ingresar en un navegador una dirección.  Esta dirección es denominada URL y esta compuesta por:
  • 14. Herramientas  J2EE Java 2 Platform Enterprise Edition es una plataforma completa, estable, segura y rápida para el desarrollo, despliegue y ejecución de aplicaciones empresariales. Se compone del JRE y JDK.  MySQL MySQL es un sistema de gestión de base de datos relacional.
  • 15. Herramientas  Eclipse Entorno de desarrollo integrado para desarrollar aplicaciones.  Apache Tomcat Contenedor de aplicaciones Web desarrolladas con Java que implementa el protocolo HTTP.
  • 18. Aplicaciones en Tomcat  /aplicacion1 Directorio raíz de la aplicación web; aquí se colocan todos los archivos HTML, JSP, etc. que utiliza la aplicación. Se pueden crear subdirectorios adicionales.  /aplicacion1/WEB-INF Directorio que contiene todos los recursos relacionados con la aplicación web que no son de acceso directo para un cliente (browser). En este directorio se coloca el archivo descriptor web.xml.  /aplicacion1/WEB-INF/classes Directorio que contiene todos los servlets y cualquier otra clase de utilidad que se necesite. Por lo general contiene sólo archivos compilados .class
  • 19. Aplicaciones en Tomcat  Archivo de configuración web.xml Conocido como archivo descriptor de la aplicación Web. Este archivo xml se ubica dentro del directorio WEB-INF y contiene la descripción de la configuración correspondiente a la aplicación Web.  Archivos WAR Un archivo WAR (Web ARchive) es la representación de una aplicación Web en una unidad única. Es el método estándar empleado para empaquetar una aplicación Web y dejarla lista para su distribución y acceso a través de servidores Web con soporte para servlets y páginas JSP.
  • 20. Servlets  Un servlet es un componente J2EE que extiende la capacidad de proceso de un servidor y que emplea el paradigma request – response, por lo tanto: “Un servlet es una clase Java que recibe requerimientos de un cliente para cumplir con un servicio; luego de cumplir con el servicio, envía la respuesta hacia el cliente.”
  • 22. Servlets – Ciclo de vida El contenedor Web carga la clase y crea una nueva instancia del Servlet. El contenedor Web inicializa la instancia del Servlet. El contenedor Web libera los recursos utilizados.
  • 24. Servlets – Registro en web.xml <web-app> … <servlet> <servlet-name>MiServlet</servlet-name> <servlet-class>prog1.sesion2.PrimerServlet</servlet- class> </servlet> <servlet-mapping> <servlet-name>MiServlet</servlet-name> <url-pattern>/helloWorld</url-pattern> </servlet-mapping> … </web-app>
  • 26. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 02
  • 27. Agenda de la sesión  Crear, registrar y acceder a Servlets.  Servlets: doPost y doGet  Servlets: HttpServletRequest y HttpServletResponse  Variables predefinidas.  Contexto de Servlets  RequestDispatcher  Compartir objetos
  • 28. Objetivos de la sesión  Repasar la creación, registro y acceso a Servlets.  Diferenciar los métodos doGet y doPost.  Recibir datos y enviar respuestas desde Servlets.  Conocer que es el contexto de Servlets.  Reenviar y compartir información entre componentes Java.
  • 30. Servlets: crear, registrar y acceder <web-app> … <servlet> <servlet-name>MiServlet</servlet-name> <servlet-class>prog1.sesion2.PrimerServlet</servlet- class> </servlet> <servlet-mapping> <servlet-name>MiServlet</servlet-name> <url-pattern>/helloWorld</url-pattern> </servlet-mapping> … </web-app>
  • 31. Servlets: crear, registrar y acceder  Apache Software Foundation  Tomcat X.X  …  …  webapps  miaplicacion  WEB-INF  classes  prog1  sesion2 PrimerServlet.class http://localhost:8080/miaplicacion/helloWorld
  • 32. Servlets: doGet y doPost POST GET
  • 33. Servlets: HttpServletRequest  Proporciona la información de la petición (request) para los Servlets tanto para el método doGet y doPost.  La información proporcionada viene como pares clave-valor y sirven para generar el contenido de la respuesta.
  • 34. Servlets: HttpServletRequest  public String getParameter(String name) Devuelve el valor de un parámetro en función de su clave. arg0.getParameter(“data”);  public String[] getParameterValues(String name) Devuelve todos los valores de un parámetro compuesto. arg0.getParameterValues(“data”);
  • 35. Servlets: doPost <input type="text" name="txt_codigo" /> <input type="text" name="txt_apellido" /> <input type="text" name="txt_nombre" /> <input type="radio" name="rb_sexo" value="M" /> <input type="radio" name="rb_sexo" value=“F" /> <select name="sel_cursos" size="5" multiple="multiple"> <option value="1">Programación 1</option> <option value="2">Ing. de Software 1</option> <option value="3">Ing. de Costos</option> <option value="4">Gestión Financiera</option> <option value="5">Arq. Procesadores</option> </select> arg0.getParameter(“txt_codigo”); arg0.getParameterValues(“sel_cursos”);
  • 36. Servlets: doGet  http://localhost:8080/miapp/ helloWorld?nombre=juan&apellido=perez  http://localhost:8080/miapp/ pagina.jsp?nombre=juan&apellido=perez arg0.getParameter(“nombre”);
  • 37. Servlets: obteniendo información package prog1.sesion2; import javax.servlet.*; import javax.servlet.http.*; public class metodosHTTP extends HttpServlet { protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) { int codigo = Integer.parseInt(arg0.getParameter("codigo")); } protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) { String nombres = arg0.getParameter("txt_nombre"); String apellidos = arg0.getParameter("txt_apellido"); String sexo = arg0.getParameter("r_sexo"); } }
  • 41. Contexto de Servlets  El contexto de un servlet define el entorno en el que el servlet se está ejecutando.  Es el contexto de una aplicación web (webapp).  Los servlets que pertenecen al mismo contexto pueden compartir recursos a traves de los métodos getAttribute y setAttribute.
  • 42. Contexto de Servlets  A través del ServletContext podemos: • Leer parámetros de inicialización de la aplicación. • Leer archivos de recursos de la aplicación. • Escribir en el archivo de log de la aplicación. • Leer y escribir atributos compartidos por todos los servlets/jsp‟s.
  • 43. RequestDispatcher  El despachador de la petición (RequestDispatcher) permite remitir una petición (request) a un componente J2EE.  Es obtenido de la siguiente manera: RequestDispatcher rd = getServletContext().getRequestDispatcher(“ruta_recurso”);  Una vez obtenido el objeto RequestDispatcher, invocamos al recurso (servlet) enviándole el objeto request. Rd.forward(request,response)
  • 44. Compartir Objetos  Existen dos formas de compartir objetos entre servlets:  ServletContext, es usado cuando un grupo de servlets necesitan trabajar con un mismo objeto.  HttpServletRequest, es usado cuando al hacer uso de una remisión (forward) se necesita compartir un objeto entre servlets.
  • 45. Compartir Objetos  Métodos: • public Object getAttribute(String name) • public void setAttribute(String name, Object object) • public void removeAttribute(String name)
  • 46. Compartir Objetos String mensaje = "texto compartido"; ServletContext sc = getServletConfig().getServletContext(); sc.setAttribute("variablecompartida", mensaje); ServletContext sc2 = getServletConfig().getServletContext(); String mensaje = (String)sc2.getAttribute("variablecompartida"); String mensaje = "otro objeto compartido"; arg0.setAttribute("cadenacompartida", mensaje); RequestDispatcher rd = getServletContext().getRequestDispatcher("/servlet2"); rd.forward(arg0, arg1); String cadena = (String)arg0.getAttribute("cadenacompartida");
  • 47. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 03
  • 48. Agenda de la sesión  Contexto de Servlets  RequestDispatcher  Compartir objetos  JSP  JavaBean
  • 49. Objetivos de la sesión  Conocer que es el contexto de Servlets.  Reenviar y compartir información entre componentes Java.  Trabajar con paginas JSP.  Discutir la utilidad de los JavaBeans.
  • 50. Contexto de Servlets  El contexto de un servlet define el entorno en el que el servlet se está ejecutando.  Es el contexto de una aplicación web (webapp).  Los servlets que pertenecen al mismo contexto pueden compartir recursos a traves de los métodos getAttribute y setAttribute.
  • 51. Contexto de Servlets  A través del ServletContext podemos: • Leer parámetros de inicialización de la aplicación. • Leer archivos de recursos de la aplicación. • Escribir en el archivo de log de la aplicación. • Leer y escribir atributos compartidos por todos los servlets/jsp‟s.
  • 52. RequestDispatcher  El despachador de la petición (RequestDispatcher) permite remitir una petición (request) a un componente J2EE.  Es obtenido de la siguiente manera: RequestDispatcher rd = getServletContext().getRequestDispatcher(“ruta_recurso”);  Una vez obtenido el objeto RequestDispatcher, invocamos al recurso (servlet) enviándole el objeto request. Rd.forward(request,response)
  • 53. Compartir Objetos  Existen dos formas de compartir objetos entre servlets:  ServletContext, es usado cuando un grupo de servlets necesitan trabajar con un mismo objeto.  HttpServletRequest, es usado cuando al hacer uso de una remisión (forward) se necesita compartir un objeto entre servlets.
  • 54. Compartir Objetos  Métodos: • public Object getAttribute(String name) • public void setAttribute(String name, Object object) • public void removeAttribute(String name)
  • 55. Compartir Objetos String mensaje = "texto compartido"; ServletContext sc = getServletConfig().getServletContext(); sc.setAttribute("variablecompartida", mensaje); ServletContext sc2 = getServletConfig().getServletContext(); String mensaje = (String)sc2.getAttribute("variablecompartida"); String mensaje = "otro objeto compartido"; arg0.setAttribute("cadenacompartida", mensaje); RequestDispatcher rd = getServletContext().getRequestDispatcher("/servlet2"); rd.forward(arg0, arg1); String cadena = (String)arg0.getAttribute("cadenacompartida");
  • 56. JSP  Java Server Pages.  Al igual que los servlets, permite generar contenido dinámico.  Un JSP tiene código java incrustado en HTML a diferencia de los servlets, que pueden generar HTML desde código java.
  • 57. JSP
  • 58. JSP  Expresión : <%=expresión%>  Código : <% código %>  Declaración : <%! código %>  Directiva page : <%@ page atributo=“valor”%> import, session, etc  Comentario : <%--comentario--%>  Directiva include : <%@ include file=“dirección”%>
  • 59. JSP  Objeto request.  Objeto response.  Objeto session.  Objeto out.
  • 60. JSP  Etiquetas JSP que proporcinan funcionalidad:  <jsp:forward> Redirige el request a otra dirección URL  <jsp:include> Incluye el texto de un fichero dentro de la página
  • 61. JavaBean  “Componentes de software reutilizables…”  Se usan para encapsular varios objetos en un único objeto.  Tiene atributos y métodos.  Un constructor sin parámetros  Métodos get y set por cada atributo  Otro métodos (no tiene restricciones, ni características especiales)
  • 62. JavaBean public class BeanSaludo{ String mensaje = null; public BeanSaludo() { // Constructor sin argumentos } // . . . public String getMensaje() { return mensaje; } public void setMensaje(String mensaje) { this. mensaje = mensaje; } // . . . }
  • 63. JavaBean  Si una propiedad es de tipo boolean, el método get puede ser definido por :  public boolean is<nombreAtributo>()  Ejemplo : public boolean isHabilitado();  Si un atributo tiene un tipo array(<tipoAtributo>[ ]), sus métodos deberán ser definidos así:  public <tipoAtributo> get<nombreAtributo>(int index)  Ejemplo : String getItem(int index);  public void set<nombreAtributo>(int index,<tipoAtributo> arg)  Ejemplo : public void setItem(int index, String valor);
  • 64. JavaBean  Si una propiedad es de tipo boolean, el método get puede ser definido por :  public boolean is<nombreAtributo>()  Ejemplo : public boolean isHabilitado();  Si un atributo tiene un tipo array(<tipoAtributo>[ ]), sus métodos deberán ser definidos así:  public <tipoAtributo> get<nombreAtributo>(int index)  Ejemplo : String getItem(int index);  public void set<nombreAtributo>(int index,<tipoAtributo> arg)  Ejemplo : public void setItem(int index, String valor);
  • 65. JSP - JavaBean  Etiquetas JSP para manipular JavaBean:  <jsp:useBean> Permite manipular un Bean, especificando la clase.  <jsp:getProperty> Obtiene la propiedad especificada de un bean previamente declarado y la escribe en el objeto response.  <jsp:setProperty> Establece el valor de una propiedad de un bean previamente declarado.
  • 66. JDBC  Java Database Connectivity.  Es un API que permite la ejecución de operaciones sobre base de datos desde el lenguaje de programación JAVA.  Permite:  Establecer una conexión con una base de datos o acceso a cualquier fuente de datos tabular.  Enviar sentencias SQL.  Procesar los resultados.
  • 67. JDBC JDBC - MySQL Clases principales que se utilizarán con un programa Java con JDBC.
  • 68. JDBC  Cargar el driver  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  Class.forName("com.mysql.jdbc.Driver");  Obtener la conexión Connection con = DriverManager.getConnection(url, “usuariobd", “passwordbd");  url = “jdbc:odbc:nombre_bd”  url = “jdbc:mysql://localhost:3306/nombre_bd”  Crear la sentencia  Statement stmt = con.createStatement();
  • 69. JDBC  Modificar información  int filas_afectadas = stmt.executeUpdate(query);  Recuperando datos ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String s = rs.getString(“nombre_columna"); float n = rs.getFloat(" nombre_columna "); }
  • 70. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 04
  • 71. Agenda de la sesión  JDBC
  • 72. Objetivos de la sesión  Definir que es JDBC.  Describir los pasos para conectarse y ejecutar sentencias en una base de datos desde Java.  Ejemplos y ejercicios.
  • 73. JDBC  Java Database Connectivity.  Es un API que permite la ejecución de operaciones sobre base de datos desde el lenguaje de programación JAVA.  Permite:  Establecer una conexión con una base de datos o acceso a cualquier fuente de datos tabular.  Enviar sentencias SQL.  Procesar los resultados.
  • 74. JDBC JDBC - MySQL Clases principales que se utilizarán con un programa Java con JDBC.
  • 75. JDBC  Cargar el driver  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  Class.forName("com.mysql.jdbc.Driver");  Obtener la conexión Connection con = DriverManager.getConnection(url, “usuariobd", “passwordbd");  url = “jdbc:odbc:nombre_bd”  url = “jdbc:mysql://localhost:3306/nombre_bd”  Crear la sentencia  Statement stmt = con.createStatement();
  • 76. JDBC  Modificar información  int filas_afectadas = stmt.executeUpdate(query);  Recuperando datos ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String s = rs.getString(“nombre_columna"); float n = rs.getFloat(" nombre_columna "); }
  • 77. JDBC
  • 78. JDBC
  • 79. JDBC
  • 81. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 04
  • 82. Agenda de la sesión  JDBC
  • 83. Objetivos de la sesión  Definir que es JDBC.  Describir los pasos para conectarse y ejecutar sentencias en una base de datos desde Java.  Ejemplos y ejercicios.
  • 84. JDBC  Java Database Connectivity.  Es un API que permite la ejecución de operaciones sobre base de datos desde el lenguaje de programación JAVA.  Permite:  Establecer una conexión con una base de datos o acceso a cualquier fuente de datos tabular.  Enviar sentencias SQL.  Procesar los resultados.
  • 85. JDBC JDBC - MySQL Clases principales que se utilizarán con un programa Java con JDBC.
  • 86. JDBC  Cargar el driver  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  Class.forName("com.mysql.jdbc.Driver");  Obtener la conexión Connection con = DriverManager.getConnection(url, “usuariobd", “passwordbd");  url = “jdbc:odbc:nombre_bd”  url = “jdbc:mysql://localhost:3306/nombre_bd”  Crear la sentencia  Statement stmt = con.createStatement();
  • 87. JDBC  Modificar información  int filas_afectadas = stmt.executeUpdate(query);  Recuperando datos ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String s = rs.getString(“nombre_columna"); float n = rs.getFloat(" nombre_columna "); }
  • 88. JDBC
  • 89. JDBC
  • 90. JDBC
  • 92. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 06
  • 93. Agenda de la sesión  Sesiones
  • 94. Objetivos de la sesión  Definir que son las sesiones  Cuando utilizar sesiones
  • 95. Ejercicios  ¿Qué se necesita para implementar la funcionalidad de login de una aplicación?  Pagina login.html / login.jsp  Servlet Login
  • 96. Ejercicios <form name="frm_registro” method="post" action=""> <input type="text" name="txt_usuario" /> <input type=“password” name="txt_clave" /> <input type="submit" name="btn_grabar" value="Grabar" /> </form>
  • 97. Ejercicios  Información del formulario usuario = request.getParameter(“txt_usuario”); clave = request.getParameter(“txt_clave”);
  • 98. Ejercicios  Conectarse a base de datos try{ Class.forName(“com.mysql.jdbc.Driver”); String url = “jdbc:mysql://localhost:3306/basedatos”; Connection con = DriverManager.getConnection(url, “usu”, “pass”); Statement stmt = con.createStatement(); …diapositiva siguiente… }catch(Execption e){ out.print(e.getMessage());
  • 99. Ejercicios - JDBC  Validar el usuario y clave Resulset resultado= stmt.executeUpdate(“SELECT nombre FROM usuario WHERE usuario=„”+usuario +“‟ AND clave=„”+clave +“‟”); boolean flag = false; while(resultado.next()){ flag = true; }
  • 100. Sesiones  Nos permite identificar a un usuario mientras mantiene interacciones con un sitio Web.  Podemos guardar información relevante que nos identifique a un usuario en particular.
  • 101. Sesiones  HttpSession misesion = request.getSession(true);  <%@ page session="true"%>
  • 102. Sesiones  Para almacenar objetos en una sesión: String micorreo="correo@dominio.com"; misesion.setAttribute("uncorreo", micorreo);  Para obtener un objeto dentro de una sesión: misesion.getAttribute("uncorreo");  Para eliminar un objeto dentro de una sesión: misesion.removeAttribute("uncorreo");  Para eliminar todos los objetos dentro de una sesión: misesion.invalidate();
  • 103. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 07
  • 104. Agenda de la sesión  Transacciones  ACID
  • 105. Objetivos de la sesión  Cuando se deben utilizar transacciones  Definir el concepto de ACID
  • 106. Transacciones  Una transacción es un conjunto de sentencias que han sido ejecutadas y confirmadas/revertidas.  Luego de ejecutar las sentencias:  Para confirmar se utiliza el método commit.  Para eliminar todos los cambios realizados desde el último commit se utiliza el método rollback.
  • 107. Transacciones  Por defecto, todas las conexiones a base de datos tienen el modo auto-commit activado, por lo tanto, al ejecutar el método executeUpdate se completa una transacción.
  • 108. Transacciones Connection con = DriverManager.getConnection(...); con.setAutoCommit(false); Statement s = con.createStatement(); s.executeUpdate("SQL statement 1"); s.executeUpdate("SQL statement 2"); s.executeUpdate("SQL statement 3"); con.commit();
  • 109. ACID  Es uno de los conceptos mas importantes dentro del mundo de base de datos.  Son 4 características que todo sistema de gestión de base de datos debe alcanzar:  Atomicity.  Consistency.  Isolation.  Durability.
  • 110. ACID  Atomicity: puede definirse como la regla del todo o nada, en el caso de transacciones, si una parte falla, por consecuencia toda la transacción falla.  Consistency: sólo los datos válidos serán guardados a base de datos, las transacciones no deben violar las reglas de consistencia.
  • 111. ACID  Isolation: las transacciones que ocurren al mismo tiempo no alteren la ejecución de otras, la ejecución de dos transacciones sobre la misma información no debe generar ningún error.  Durability: propiedad que asegura que una vez realizada la transacción, sus efectos persistirán.
  • 112.
  • 113. Ejercicios - JDBC int fila_afectada = stmt.executeUpdate(“INSERT into alumno (codigo, apellidos, nombres, sexo, carrera, observaciones) VALUES(`“+cod+”´, `“+ape+”´, `“+nom+”´, `“+sex +”´, `“+car+”´, `“+obs+”´)”); if(filas_afectada == 1){ … // commit }else{ // rollback }
  • 114. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 10
  • 115. Agenda de la sesión  Frameworks  Patrones  Modelos de aplicación  MVC
  • 116. Objetivos de la sesión  Definir el concepto de Frameworks y su relación con los patrones.  Conocer los modelos de aplicaciones Web.
  • 117. Frameworks  Casi siempre se buscan maneras para simplificar el desarrollo de proyectos que usan tecnologías y estructuras similares, en este caso, aplicaciones para Web.  Existen cientos de Frameworks (marcos de trabajo) creados para el desarrollo de aplicaciones Web con Java y casi todos aplican el diseño de aplicaciones MVC.
  • 118. Frameworks  Se podría decir que:  Es un conjunto de componentes que componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.  Es una colección de clases e interfases que modelan una aplicación genérica definiendo una arquitectura para la aplicación, se componen de patrones.  Los objetivos principales de un Framework son:  Acelerar el proceso de desarrollo.  Reutilizar código ya existente.  Promover buenas prácticas de desarrollo.
  • 119. Frameworks Cosas a tomar en cuenta:  Tipo de aplicación a desarrollar  Facilidad de uso/desarrollo  Comunidad detrás del proyecto  Futuro del proyecto  Mantenimiento  Características técnicas  Rendimiento  Documentación
  • 120. Frameworks  Struts  Spring  Hibernate  Tapestry  Cocoon  Google Web Toolkit
  • 121. Patrones  Son una abstracción de una solución a un alto nivel, proveen solución a problemas de diseño concurrentes o comunes.  Nos permiten la reutilización de componentes y mayor eficiencia en la ejecución de los mismos.
  • 122. Patrones  La difusión de los patrones de diseño comenzó a darse luego de la publicación del libro “Design Patterns: Elements of Reusable Object Oriented Software” escrito por Gang of Four (GoF), en donde documentaron 23 patrones de diseño.  Clasificándolos en 3 grandes categorías:  Creacionales  Estructurales  Comportamiento
  • 123. Modelos de aplicación JSP Browser BD Bean
  • 124. Modelo de aplicación 1  Cantidad de código JAVA dentro de las páginas JSP.  Problema para los diseñadores.  Aplicaciones difíciles de mantener.  Dificultad en presentar la aplicación en diferentes vistas (interfases) como HTML, WML, XML, etc. Recomendación: Utilizar el Modelo 1 para aplicaciones simples o cuando se necesite obtener la aplicación rápidamente.
  • 125. Modelo de aplicación 2  Es un alcance combinado para servir contenido dinámico, combina el uso de Servlets y JSP.  Separa la presentación del contenido.  Los JSP se encargan de la presentación y los Servlets del procesamiento de tareas. Recomendación: Utilizarlo para aplicaciones medianas o grandes y aplicaciones que crecerán en complejidad en el futuro.
  • 126. MVC  Es el patrón de diseño arquitectónico recomendado para el desarrollo de aplicaciones interactivas.  Organiza la aplicación dentro de 3 capas separadas:  Modelo  Vista  Controlador
  • 127. MVC  Modelo Representa los datos de la aplicación y sus reglas de negocio.  Vista Conjunto de vistas que básicamente representa los formularios de entrada y salida de información.  Controlador Conjunto de controladores que procesa las peticiones de los usuarios y controla el flujo de la aplicación.
  • 128. MVC
  • 129. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 11
  • 130. Agenda de la sesión  MVC  DAO
  • 131. Objetivos de la sesión  Reforzar el concepto MVC.  Definir y analizar el uso del patrón DAO.
  • 132. MVC
  • 133. MVC Bienvenidos a la Tienda Virtual
  • 134. MVC
  • 135. MVC
  • 136. MVC
  • 137. DAO  Las aplicaciones trabajan con diversos orígenes de datos y su acceso depende del tipo de almacenamiento o del proveedor.
  • 138. DAO  Ayuda a encapsular la forma de acceso a la fuente de datos, administra la conexión con la fuente de datos para obtener y almacenar los datos.  Permite adaptar a diferentes esquemas de almacenamiento sin afectar a los cliente o componentes de negocio, DAO actúa como un adaptador entre los componentes y el origen de datos.
  • 139. DAO  El objetivo es que la aplicación se centre en los datos que se utilizan y no se preocupe de cuál es su fuente de almacenamiento y como se realiza el acceso.
  • 140. DAO uses encapsula BusinessObject DataAccessObject DataSource Crea / utiliza Obtiene / modifica TransferObject
  • 141. DAO I-ClienteDAO Client usa MySqlClienteDAO encapsula MYSQL crea / utiliza obtiene / modifica ClienteBean
  • 142. DAO /tiendavirtual  src  beans  dao  servlets  util  WebContent  index.jsp  login.jsp  productos.jsp  carrito.jsp
  • 143. DAO /tiendavirtual  src  beans  ProductoBean  dao  MySqlDAO  ProductoDAO  MySql_ProductoDAO  servlets  ServletCompra  util
  • 144. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 12
  • 145. Agenda de la sesión  DAO  DAOFactory
  • 146. Objetivos de la sesión  Reforzar el concepto de DAO en base a ejemplos.  Conceptos de DAOFactory.  Mostrar las diferencias entre DAO y DAOFactory.
  • 147. DAO I-ClienteDAO Client usa MySqlClienteDAO encapsula MYSQL crea / utiliza obtiene / modifica ClienteBean
  • 148. DAO /tiendavirtual  src  beans  dao  servlets  util  WebContent  index.jsp  login.jsp  productos.jsp  carrito.jsp
  • 149. DAO /tiendavirtual  src  beans  ProductoBean  dao  MySqlDAO  ProductoDAO  MySql_ProductoDAO  servlets  ServletCompra  util
  • 156. DAOFactory MYSQLDAO SQLDAO MySqlClienteDAO MySqlProductoDAO SqlClienteDAO SqlProductoDAO I-ClienteDAO I-ProductoDAO I-ClienteDAO I-ProductoDAO
  • 157. DAOFactory DAOFactory MySqlDAOFactory SqlDAOFactory OracleDAOFactory MySqlProductoDAO SqllProductoDAO OraclelProductoDAO lProductoDAO
  • 158. DAOFactory /tiendavirtual  src  beans  ProductoBean  dao  iface  ProductoDAO  mysql  MySql_ProductoDAO  daofactory  DAOFactory  MySqlDAOFactory  servlets  ServletCompra
  • 162. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 13
  • 163. Agenda de la sesión  DAOFactory  Ejercicios
  • 164. Objetivos de la sesión  Reforzar el concepto de DAOFactory.  Ejercicios DAOFactory.
  • 165. DAOFactory MYSQLDAO SQLDAO MySqlClienteDAO MySqlProductoDAO SqlClienteDAO SqlProductoDAO I-ClienteDAO I-ProductoDAO I-ClienteDAO I-ProductoDAO
  • 166. DAOFactory DAOFactory MySqlDAOFactory SqlDAOFactory OracleDAOFactory MySqlProductoDAO SqllProductoDAO OraclelProductoDAO lProductoDAO
  • 167. DAOFactory /tiendavirtual  src  beans  CategoriaBean  dao  iface  CategoriaDAO  mysql  MySql_CategoriaDAO  daofactory  DAOFactory  MySqlDAOFactory  servlets  Categorias  WebContent  categorias.jsp
  • 175. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 14
  • 176. Agenda de la sesión  JavaScript
  • 177. Objetivos de la sesión  Definir el concepto de JavaScript  Conocer la sintaxis JavaScript  Mostar la ubicación del código JavaScript
  • 179. JavaScript  Es un lenguaje de programación utilizado en paginas Web.  Tiene una sintaxis similar a Java.  Es reconocido y ejecutado por todos los navegadores.
  • 180. JavaScript  Es un lenguaje que responde a eventos.  Va incrustado dentro de las paginas html.  Realiza acciones en el cliente (browser).  Diseñado para agregar interactividad en las paginas html.
  • 181. JavaScript  window  history  location  document  form  button, checkbox, hidden, radio, text, select (options), etc  frame  navigator
  • 185. JavaScript - windows  Algunas propiedades  closed, indica si la venta esta cerrada.  frames, un array que contiene los frames de la ventana.  history, representa las URLs visitadas.  location, contiene la URL de la barra de dirección.  opener, referencia al objeto window que lo abrió.  status, cadena de la barra de estado.
  • 186. JavaScript  Algunos métodos  alert, muestra un mensaje.  close(), cierre el objeto window actual.  open(URL, nombre, propiedades), abre una URL en una ventana.  scroll(x,y), desplaza las coordenadas del cursor.
  • 188. JavaScript - document  Algunas propiedades  bgColor, color de fondo del documento.  forms, es un array con todos los formularios del documento.  images, es un array con todas las imágenes del documento.  title, titulo del documento actual.
  • 189. Frameworks JavaScript  MooTools  jQuery  Prototype  Dojo  Script.aculo.us
  • 190. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 15
  • 191. Agenda de la sesión  AJAX  XML y RSS
  • 192. Objetivos de la sesión  Conocer nuevas técnicas de desarrollo Web  Resumen DaoFactory
  • 193. XML  Extensible Markup Language (lenguaje de marcas extensible).  Se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas.  Permite la compatibilidad entre sistemas para compartir información.
  • 194. XML <?xml version="1.0" encoding=“utf-8" ?> <ciclo> <curso> <nombre>Programación I</nombre> <seccion>30F</seccion> </curso> <curso> <nombre>Programación I</nombre> <seccion>32F</seccion> </curso> </ciclo>
  • 195. RSS  Acrónimo de Really Simple Sindication.  Se utiliza para brindarle información actualizada de una Web a usuarios o sistemas.  Para leer los contenidos de un RSS es necesario un software especial (agregador/lectores).
  • 196. AJAX  Acrónimo de Asynchronous JavaScript and XML (JavaScript asíncrono y XML)  Técnica de desarrollo Web para crear mejores, mas rápidas e interactivas aplicaciones Web.  Se puede utilizar bajo varias plataformas y en muchos sistemas operativos y navegadores.  Es una combinación de JavaScript y XML
  • 197. AJAX  Es un conjunto de tecnologías:  XHTML y CSS  Document Object Model  XML y XSLT  XMLHttpRequest  JavaScript
  • 198. AJAX - Peticiones tradicionales  El cliente/usuario realiza una petición (request) al servidor a través de un browser.  El servidor recibe la petición, procesa la solicitud y devuelve una respuesta (response), generalmente HTML.  El browser procesa y muestra la respuesta.
  • 199. AJAX - Peticiones Ajax  El cliente/usuario haciendo uso del browser produce algún evento procesado por JavaScript que se encarga de realizar la petición (request) al servidor.  El servidor recibe la petición, procesa la solicitud y devuelve una respuesta en XML.  El JavaScript procesa la respuesta para actualizar la página, sin necesidad de recargarla.
  • 200. AJAX
  • 201. AJAX
  • 202. AJAX - Ventajas  Las páginas no se recargan completamente por cada acción del usuario.  El tiempo de espera y carga de una pagina puede ser menor.
  • 203. AJAX - Desventajas  No se puede mantener la acción de “retroceder” que tienen los browsers.  Solo funciona si los browser tienen habilitado la ejecución JavaScript  Los usuarios pueden ver una carga de rendimiento en sus maquinas.
  • 204. AJAX - Desventajas  http://www.jamesdam.com/ajax_login/login.html  http://joeabiraad.com/demos/ajax2/  http://www.ajaxdaddy.com/
  • 205. PROGRAMACIÓN I 2009-I Docente : Ing. Carlos A. Quinto Cáceres Correo : cquinto@usmp.edu.pe Semana 15
  • 206. Agenda de la sesión  Temas del curso
  • 207. Objetivos de la sesión  Resumen de la 2da parte del curso
  • 208. Frameworks  Se podría decir que:  Es un conjunto de componentes que componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.  Es una colección de clases e interfases que modelan una aplicación genérica definiendo una arquitectura para la aplicación, se componen de patrones.  Los objetivos principales de un Framework son:  Acelerar el proceso de desarrollo.  Reutilizar código ya existente.  Promover buenas prácticas de desarrollo.
  • 209. Patrones  Son una abstracción de una solución a un alto nivel, proveen solución a problemas de diseño concurrentes o comunes.  Nos permiten la reutilización de componentes y mayor eficiencia en la ejecución de los mismos.  Se clasificaron en 3 grandes categorías:  Creacionales  Estructurales  Comportamiento
  • 210. MVC
  • 211. DAO  Ayuda a encapsular la forma de acceso a la fuente de datos, administra la conexión con la fuente de datos para obtener y almacenar los datos.  Permite adaptar a diferentes esquemas de almacenamiento sin afectar a los cliente o componentes de negocio, DAO actúa como un adaptador entre los componentes y el origen de datos.
  • 212. DAO I-ClienteDAO Client usa MySqlClienteDAO encapsula MYSQL crea / utiliza obtiene / modifica ClienteBean
  • 213. DAO /tiendavirtual  src  beans  ProductoBean  dao  MySqlDAO  ProductoDAO  MySql_ProductoDAO  servlets  ServletCompra  util
  • 218. DAOFactory MYSQLDAO SQLDAO MySqlClienteDAO MySqlProductoDAO SqlClienteDAO SqlProductoDAO I-ClienteDAO I-ProductoDAO I-ClienteDAO I-ProductoDAO
  • 219. DAOFactory DAOFactory MySqlDAOFactory SqlDAOFactory OracleDAOFactory MySqlProductoDAO SqllProductoDAO OraclelProductoDAO lProductoDAO
  • 220. DAOFactory /tiendavirtual  src  beans  CategoriaBean  dao  iface  CategoriaDAO  mysql  MySql_CategoriaDAO  daofactory  DAOFactory  MySqlDAOFactory  servlets  Categorias  WebContent  categorias.jsp
  • 228. JavaScript  Tiene una sintaxis similar a Java.  Es reconocido y ejecutado por todos los navegadores.  Es un lenguaje que responde a eventos.  Va incrustado dentro de las paginas html.  Realiza acciones en el cliente (browser).  Diseñado para agregar interactividad en las paginas html.
  • 229. XML  Extensible Markup Language (lenguaje de marcas extensible).  Se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas.  Permite la compatibilidad entre sistemas para compartir información.
  • 230. RSS  Acrónimo de Really Simple Sindication.  Se utiliza para brindarle información actualizada de una Web a usuarios o sistemas.  Para leer los contenidos de un RSS es necesario un software especial (agregador/lectores).
  • 231. AJAX  Acrónimo de Asynchronous JavaScript and XML (JavaScript asíncrono y XML)  Es un conjunto de tecnologías:  XHTML y CSS  Document Object Model  XML y XSLT  XMLHttpRequest  JavaScript
  • 232. AJAX