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()
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
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 – 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
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
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
…