INTRODUCCIÓN A LAS
APLICACIONES WEB Y
  TECNOLOGÍA JAVA
Índice
 Java
 Aplicaciones web
 Servlets – JSP
 Servidores de aplicaciones – IDE`s
 Ejemplo
Java
 Historia
     Lenguaje orientado a objetos creado por Sun
      Microsystems
       • Encapsulación – ocultacion de datos y metodos
       • Herencia
       • Polimorfismo – circulo.area() , cuadrado.area()
     Éxito alcanzado gracias a:
       • Internet: aplicaciones web
       • “Independencia” del S.O. y plataforma
       • Marketing
Plataforma Java

   Java Language


   Java Bytecode

  Java API

 Java Virtual Machine

      Plataform
Características
   El código Java se estructura en clases
       Las clases se estructuran a su vez en paquetes
   Clase Object de la que derivan las demás
   Los tipos básicos no son clases
       void, char, boolean, byte, int, array
   Herencia simple:
       las clases derivadas pueden añadir variables y (re)definir
        métodos
   Herencia múltiple: interfaces
       no definen ninguno de sus métodos y únicamente declaran
        constantes
    class Circulo extends Figura implements Superficie
CONTROL DE ACCESO
-   En variables y métodos miembro
-   Tres tipos:
    -   public
    -   protected
    -   private
        Modificador acceso    Public   Protected   Private

        Misma clase                               
        Subclase                        [*]       
        Clase externa en el
        mismo paquete                             
        Clase externa en
        otro paquete                              
Concepto de static
-   Afecta a variables y métodos
-   Hacen referencia a la clase (no al objeto)
-   Se inicializan justo antes de utilizar por
    primera vez la clase
-   Llamada:
    -   Clase.variable (objeto.variable -> no aconsejado).
    -   Clase.metodo()
-   Ej: Math.cos()
Aplicaciones Web
Pila de protocolos

       HTML


        HTTP


        TCP


         IP


      MAC - LLC


       FÍSICO
Modelo Cliente Servidor
 Cuando   un usuario desea acceder a una
  determinada página web, utiliza un
  navegador
 Similarmente en el otro extremo se
  precisa un servidor


                HTTP
Evolución
 Inicialmente,    únicamente información
 estática.
     HTML estático
     Aplicaciones “pobres”
 Posteriormente,  ejecución de código en
 el lado del cliente:
     HTML dinámico: JavaScript
     Principalmente mejoras de interfaz
Evolución (II)
 Programación      en el lado del servidor:
     CGIs
     Páginas ASP
     Páginas JSP, servlets
     PHP
     J2EE, .NET
     Zope, Ruby on Rails
     …
Evolución (III)
 Web   Services
    Interoperabilidad entre servidores y clientes
    Programación de procedimientos remotos
    WSDL
    SOAP, XML-RPC
    WS-Security
SERVLET – JSP
TECNOLOGÍA SERVLET
           INTRODUCCION

 Son la respuesta de la tecnología Java a
 la programación CGI.

 Programas Java que se ejecutan en el
 SERVIDOR y construyen dinámicamente
 una página HTML
Servlets – Caracteristicas
 Tienen acceso a todas las Apis de Java: JDBC,
  JavaMail, etc..
 Permiten utilizar cookies y seguimiento de
  sesiones (HttpSession), muy útiles para el
  desarrollo de aplicaciones Web.
 Define métodos para atender a cada una de las
  peticiones de HTTP que se puedan dar: doGet,
  doPost, doPut...
 Dos Parámetros importantes:
     • HttpServletRequest: modeliza la petición del usuario y
       contiene información de la petición HTTP realizada
     • HttpServletResponse: objeto que implementa la conexión
       de salida con el usuario
Servlets – Comparativa con CGI
   Eficiencia: CGI arranca un proceso por cada
    llamada. En Servlets, por cada llamada se
    controla por un thread de Java
   Potencia: Permite hacer fácilmente cosas que
    son complicadas de hacer con CGI normal
   Portabilidad: Escrito en Java
   Funcionalidad: acceso a la Api de Java
   Barato: añadir soporte para servlets en un
    servidor web es gratuito o muy barato
Servlets - Funcionamiento

                           servlet




cliente    servidor
                      pagina.html
Servlets - Ejemplo
 http://miservidor:8080/HelloWorld?nombre=Iñaki
 Servlet que escribe código HTML
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
   HttpServletResponse response) throws ServletException,
   IOException {
       response.setContentType("text/html");
       String nom = request.getParameter(“nombre”);
       PrintWriter out = response.getWriter();
       out.println( "<HTML>n" +
       "<HEAD><TITLE>Hello World</TITLE></HEAD>n" +
       "<BODY>n" +
       "<H1>Hello World, + nom + </H1>n" +
       "</BODY>+
       </HTML>" );
   }
 }
Tecnología JSP – Introduccion
 Es un fichero de texto con etiquetas HTML
  y código java embebido
 Se compilan automáticamente según se
  necesitan: se convierte en un servlet
 Desde un JSP: uso de JavaBeans, uso de
  JDBC. Cualquier clase de Java
JSP - Ejemplo
                                                     servlet
<%@ page import=“ java.util.*” %>
<html>
   <head>
   <title>Ejemplo de JSP</title>
   </head>
   <body>
   <% Date date = new Date();                      compilación
   String hoy = DateFormat.getDateInstance().format(d);%>
   <h1> Hola, <%request.getParameter(“nombre”)%></h2>
   <br>
   <h2>Hoy es : <%= hoy %> </h2>
   </body>
</html>


               fichero jsp
JSP vs Servlet
         • Servlets: Java con HTML embebido
         • JSPs: HTML con Java embebido
   Semejanzas:
       JSP son una extensión de Servlets. No aporta
        funcionalidades nuevas
       Un JSP compilado es un Servlet
       Misma función: construir contenido dinámico
   Diferencias:
       JSP separa más claramente el diseño de la lógica
       Más sencillo modificar código HTML que miles de
        sentencias println
JSP – SERVLET:
  FUNCIONAMIENTO GENERAL

                     CONTROL

                      servlet




                                MODELO
                     VISTA




cliente   servidor
                       jsp
IDE´S - SERVIDORES
IDE´s
   Alternativa a la línea de comandos
   Integración de herramientas:
       Compilación
       Depuración (necesitan el SDK)
       Ant, CVS…
   Modulares: ampliables mediante plugins
   Ayuda a la programación
IDE´s
 Eclipse:
       Open Source, impulsado por IBM
       meta-IDE: sirve para muchas cosas
       SWT: sustituye a AWT y Swing

   NetBeans:
       Open Source, desarrollado por Sun
       Generación automática de plantillas
       Java 100% estándar
Otros IDE
   BlueJ (http://www.bluej.org/) - Software libre
   jCreator (http://www.jcreator.com/) - Software
    propietario, versión gratuita disponible.
   Sun Java Studio
    (http://wwws.sun.com/software/sundev/jde/) -
    Software propietario, extensión de netBeans.
   JBuilder (http://www.borland.com/jbuilder/) -
    Software propietario
   IntelliJ IDEA (http://www.jetbrains.com/idea/) -
    Software propietario
Motor de Servlet
 Aplicaciónque contiene la aplicación java
 Necesario para ejecutar los servlet y jsp
 Productos
     Apache Tomcat
     BEA WebLogic
     IBM WebSphere
     Sun/Netscape IPlanet
     Macromedia JRun
     …

Charla

  • 1.
    INTRODUCCIÓN A LAS APLICACIONESWEB Y TECNOLOGÍA JAVA
  • 2.
    Índice  Java  Aplicacionesweb  Servlets – JSP  Servidores de aplicaciones – IDE`s  Ejemplo
  • 3.
    Java  Historia  Lenguaje orientado a objetos creado por Sun Microsystems • Encapsulación – ocultacion de datos y metodos • Herencia • Polimorfismo – circulo.area() , cuadrado.area()  Éxito alcanzado gracias a: • Internet: aplicaciones web • “Independencia” del S.O. y plataforma • Marketing
  • 4.
    Plataforma Java Java Language Java Bytecode Java API Java Virtual Machine Plataform
  • 5.
    Características  El código Java se estructura en clases  Las clases se estructuran a su vez en paquetes  Clase Object de la que derivan las demás  Los tipos básicos no son clases  void, char, boolean, byte, int, array  Herencia simple:  las clases derivadas pueden añadir variables y (re)definir métodos  Herencia múltiple: interfaces  no definen ninguno de sus métodos y únicamente declaran constantes class Circulo extends Figura implements Superficie
  • 6.
    CONTROL DE ACCESO - En variables y métodos miembro - Tres tipos: - public - protected - private Modificador acceso Public Protected Private Misma clase    Subclase  [*]  Clase externa en el mismo paquete    Clase externa en otro paquete   
  • 7.
    Concepto de static - Afecta a variables y métodos - Hacen referencia a la clase (no al objeto) - Se inicializan justo antes de utilizar por primera vez la clase - Llamada: - Clase.variable (objeto.variable -> no aconsejado). - Clase.metodo() - Ej: Math.cos()
  • 8.
  • 9.
    Pila de protocolos HTML HTTP TCP IP MAC - LLC FÍSICO
  • 10.
    Modelo Cliente Servidor Cuando un usuario desea acceder a una determinada página web, utiliza un navegador  Similarmente en el otro extremo se precisa un servidor HTTP
  • 11.
    Evolución  Inicialmente, únicamente información estática.  HTML estático  Aplicaciones “pobres”  Posteriormente, ejecución de código en el lado del cliente:  HTML dinámico: JavaScript  Principalmente mejoras de interfaz
  • 12.
    Evolución (II)  Programación en el lado del servidor:  CGIs  Páginas ASP  Páginas JSP, servlets  PHP  J2EE, .NET  Zope, Ruby on Rails  …
  • 13.
    Evolución (III)  Web Services  Interoperabilidad entre servidores y clientes  Programación de procedimientos remotos  WSDL  SOAP, XML-RPC  WS-Security
  • 14.
  • 15.
    TECNOLOGÍA SERVLET INTRODUCCION  Son la respuesta de la tecnología Java a la programación CGI.  Programas Java que se ejecutan en el SERVIDOR y construyen dinámicamente una página HTML
  • 16.
    Servlets – Caracteristicas Tienen acceso a todas las Apis de Java: JDBC, JavaMail, etc..  Permiten utilizar cookies y seguimiento de sesiones (HttpSession), muy útiles para el desarrollo de aplicaciones Web.  Define métodos para atender a cada una de las peticiones de HTTP que se puedan dar: doGet, doPost, doPut...  Dos Parámetros importantes: • HttpServletRequest: modeliza la petición del usuario y contiene información de la petición HTTP realizada • HttpServletResponse: objeto que implementa la conexión de salida con el usuario
  • 17.
    Servlets – Comparativacon CGI  Eficiencia: CGI arranca un proceso por cada llamada. En Servlets, por cada llamada se controla por un thread de Java  Potencia: Permite hacer fácilmente cosas que son complicadas de hacer con CGI normal  Portabilidad: Escrito en Java  Funcionalidad: acceso a la Api de Java  Barato: añadir soporte para servlets en un servidor web es gratuito o muy barato
  • 18.
    Servlets - Funcionamiento servlet cliente servidor pagina.html
  • 19.
    Servlets - Ejemplo http://miservidor:8080/HelloWorld?nombre=Iñaki  Servlet que escribe código HTML public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String nom = request.getParameter(“nombre”); PrintWriter out = response.getWriter(); out.println( "<HTML>n" + "<HEAD><TITLE>Hello World</TITLE></HEAD>n" + "<BODY>n" + "<H1>Hello World, + nom + </H1>n" + "</BODY>+ </HTML>" ); } }
  • 20.
    Tecnología JSP –Introduccion  Es un fichero de texto con etiquetas HTML y código java embebido  Se compilan automáticamente según se necesitan: se convierte en un servlet  Desde un JSP: uso de JavaBeans, uso de JDBC. Cualquier clase de Java
  • 21.
    JSP - Ejemplo servlet <%@ page import=“ java.util.*” %> <html> <head> <title>Ejemplo de JSP</title> </head> <body> <% Date date = new Date(); compilación String hoy = DateFormat.getDateInstance().format(d);%> <h1> Hola, <%request.getParameter(“nombre”)%></h2> <br> <h2>Hoy es : <%= hoy %> </h2> </body> </html> fichero jsp
  • 22.
    JSP vs Servlet • Servlets: Java con HTML embebido • JSPs: HTML con Java embebido  Semejanzas:  JSP son una extensión de Servlets. No aporta funcionalidades nuevas  Un JSP compilado es un Servlet  Misma función: construir contenido dinámico  Diferencias:  JSP separa más claramente el diseño de la lógica  Más sencillo modificar código HTML que miles de sentencias println
  • 23.
    JSP – SERVLET: FUNCIONAMIENTO GENERAL CONTROL servlet MODELO VISTA cliente servidor jsp
  • 24.
  • 25.
    IDE´s  Alternativa a la línea de comandos  Integración de herramientas:  Compilación  Depuración (necesitan el SDK)  Ant, CVS…  Modulares: ampliables mediante plugins  Ayuda a la programación
  • 26.
    IDE´s  Eclipse:  Open Source, impulsado por IBM  meta-IDE: sirve para muchas cosas  SWT: sustituye a AWT y Swing  NetBeans:  Open Source, desarrollado por Sun  Generación automática de plantillas  Java 100% estándar
  • 27.
    Otros IDE  BlueJ (http://www.bluej.org/) - Software libre  jCreator (http://www.jcreator.com/) - Software propietario, versión gratuita disponible.  Sun Java Studio (http://wwws.sun.com/software/sundev/jde/) - Software propietario, extensión de netBeans.  JBuilder (http://www.borland.com/jbuilder/) - Software propietario  IntelliJ IDEA (http://www.jetbrains.com/idea/) - Software propietario
  • 28.
    Motor de Servlet Aplicaciónque contiene la aplicación java  Necesario para ejecutar los servlet y jsp  Productos  Apache Tomcat  BEA WebLogic  IBM WebSphere  Sun/Netscape IPlanet  Macromedia JRun  …