INTRODUCCIÓN A LAS
APLICACIONES WEB Y
TECNOLOGÍA JAVA
Jaime Fernández
Mayo 2006
Í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 Virtual Machine
Java API
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
HTTP
TCP
MAC - LLC
FÍSICO
IP
HTML
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
cliente servidor
servlet
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
<%@ page import=“ java.util.*” %>
<html>
<head>
<title>Ejemplo de JSP</title>
</head>
<body>
<% Date date = new Date();
String hoy = DateFormat.getDateInstance().format(d);%>
<h1> Hola, <%request.getParameter(“nombre”)%></h2>
<br>
<h2>Hoy es : <%= hoy %> </h2>
</body>
</html>
servlet
fichero jsp
compilación
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
CONTROL
JSP – SERVLET:
FUNCIONAMIENTO GENERAL
cliente servidor
servlet
jsp
MODELO
VISTA
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ón que contiene la aplicación java
 Necesario para ejecutar los servlet y jsp
 Productos
 Apache Tomcat
 BEA WebLogic
 IBM WebSphere
 Sun/Netscape IPlanet
 Macromedia JRun
 …
EJEMPLO PRÁCTICO

introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt

  • 1.
    INTRODUCCIÓN A LAS APLICACIONESWEB Y TECNOLOGÍA JAVA Jaime Fernández Mayo 2006
  • 2.
    Índice  Java  Aplicacionesweb  Servlets – JSP  Servidores de aplicaciones – IDE`s  Ejemplo
  • 3.
    Java  Historia  Lenguajeorientado 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 JavaBytecode Java Virtual Machine Java API Plataform
  • 5.
    Características  El códigoJava 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 HTTP TCP MAC- LLC FÍSICO IP HTML
  • 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, únicamenteinformació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ónen el lado del servidor:  CGIs  Páginas ASP  Páginas JSP, servlets  PHP  J2EE, .NET  Zope, Ruby on Rails  …
  • 13.
    Evolución (III)  WebServices  Interoperabilidad entre servidores y clientes  Programación de procedimientos remotos  WSDL  SOAP, XML-RPC  WS-Security
  • 14.
  • 15.
    TECNOLOGÍA SERVLET INTRODUCCION  Sonla 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 clienteservidor servlet 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 <%@page import=“ java.util.*” %> <html> <head> <title>Ejemplo de JSP</title> </head> <body> <% Date date = new Date(); String hoy = DateFormat.getDateInstance().format(d);%> <h1> Hola, <%request.getParameter(“nombre”)%></h2> <br> <h2>Hoy es : <%= hoy %> </h2> </body> </html> servlet fichero jsp compilación
  • 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.
    CONTROL JSP – SERVLET: FUNCIONAMIENTOGENERAL cliente servidor servlet jsp MODELO VISTA
  • 24.
  • 25.
    IDE´s  Alternativa ala 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:  OpenSource, 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ón que contiene la aplicación java  Necesario para ejecutar los servlet y jsp  Productos  Apache Tomcat  BEA WebLogic  IBM WebSphere  Sun/Netscape IPlanet  Macromedia JRun  …
  • 29.