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