charla
TRANSCRIPT
![Page 1: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/1.jpg)
INTRODUCCIÓN A LAS APLICACIONES WEB Y
TECNOLOGÍA JAVA
![Page 2: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/2.jpg)
Índice
Java Aplicaciones web Servlets – JSP Servidores de aplicaciones – IDE`s Ejemplo
![Page 3: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/3.jpg)
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
![Page 4: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/4.jpg)
Plataforma Java
Java Language
Java Bytecode
Java Virtual Machine
Java API
Plataform
![Page 5: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/5.jpg)
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
constantesclass Circulo extends Figura implements Superficie
![Page 6: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/6.jpg)
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
![Page 7: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/7.jpg)
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()
![Page 8: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/8.jpg)
Aplicaciones Web
![Page 9: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/9.jpg)
Pila de protocolos
HTTP
TCP
MAC - LLC
FÍSICO
IP
HTML
![Page 10: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/10.jpg)
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
![Page 11: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/11.jpg)
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
![Page 12: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/12.jpg)
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 …
![Page 13: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/13.jpg)
Evolución (III)
Web Services Interoperabilidad entre servidores y clientes Programación de procedimientos remotos WSDL SOAP, XML-RPC WS-Security
![Page 14: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/14.jpg)
SERVLET – JSP
![Page 15: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/15.jpg)
TECNOLOGÍA SERVLETINTRODUCCION
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
![Page 16: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/16.jpg)
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
![Page 17: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/17.jpg)
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
![Page 18: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/18.jpg)
Servlets - Funcionamiento
cliente servidor
servlet
pagina.html
![Page 19: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/19.jpg)
Servlets - Ejemplo http://miservidor:8080/HelloWorld?nombre=Iñaki Servlet que escribe código HTMLpublic 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>" );
} }
![Page 20: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/20.jpg)
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
![Page 21: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/21.jpg)
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>
servletservlet
fichero jsp
compilación
![Page 22: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/22.jpg)
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
![Page 23: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/23.jpg)
CONTROLCONTROL
JSP – SERVLET: FUNCIONAMIENTO GENERAL
cliente servidor
servlet
jsp
MODELOVISTA
![Page 24: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/24.jpg)
IDE´S - SERVIDORES
![Page 25: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/25.jpg)
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
![Page 26: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/26.jpg)
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
![Page 27: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/27.jpg)
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
![Page 28: Charla](https://reader033.vdocuments.pub/reader033/viewer/2022052506/557e14a7d8b42a08748b47a5/html5/thumbnails/28.jpg)
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 …