Download INTRODUCCIÓN A LAS APLICACIONES WEB Y TECNOLOGIA JAVA
Document related concepts
no text concepts found
Transcript
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 API
Java Virtual Machine
Plataform
Características
El código Java se estructura en clases
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 se estructuran a su vez en paquetes
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
Misma clase
Subclase
Clase externa en el
mismo paquete
Clase externa en
otro paquete
Public
Protected
[*]
Private
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>
compilación
<% Date date = new Date();
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ó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