INTRODUCCIÓN A LAS APLICACIONES WEB Y TECNOLOGÍA JAVA

Anuncio
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
z
Lenguaje orientado a objetos creado por Sun
Microsystems
•
•
•
z
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
Características
¾
El código Java se estructura en clases
z
¾
¾
Clase Object de la que derivan las demás
Los tipos básicos no son clases
z
¾
void, char, boolean, byte, int, array
Herencia simple:
z
¾
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
z
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
9
9
9
9
Protected
9
9[*]
9
8
Private
9
8
8
8
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.
z
z
HTML estático
Aplicaciones “pobres”
¾ Posteriormente, ejecución de código en
el lado del cliente:
z
z
HTML dinámico: JavaScript
Principalmente mejoras de interfaz
Evolución (II)
¾ Programación en el lado del servidor:
z
z
z
z
z
z
z
CGIs
Páginas ASP
Páginas JSP, servlets
PHP
J2EE, .NET
Zope, Ruby on Rails
…
Evolución (III)
¾ Web Services
z
z
z
z
z
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:
z
z
z
¾
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:
z
z
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
CONTROL
servlet
MODELO
VISTA
cliente
servidor
jsp
IDE´S - SERVIDORES
IDE´s
¾
Alternativa a la línea de comandos
¾ Integración de herramientas:
z
z
z
¾
Compilación
Depuración (necesitan el SDK)
Ant, CVS…
Modulares: ampliables mediante plugins
¾ Ayuda a la programación
IDE´s
¾ Eclipse:
z
z
z
¾
Open Source, impulsado por IBM
meta-IDE: sirve para muchas cosas
SWT: sustituye a AWT y Swing
NetBeans:
z
z
z
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
z
z
z
z
z
z
Apache Tomcat
BEA WebLogic
IBM WebSphere
Sun/Netscape IPlanet
Macromedia JRun
…
EJEMPLO PRÁCTICO
Descargar