Java Enterprise Edition (Java EE)

Slides:



Advertisements
Presentaciones similares
Desarrollo de aplicaciones en n- capas
Advertisements

JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Internet y tecnologías web
Fernando Alonso Blázquez Sesiones 06 de Mayo de 2004.
Características Generales y Entornos de Desarrollo
Servlets 22 de Abril de 2004 Fernando Alonso Blázquez.
Programación Orientada a Objeto 1
Servidores Web Capítulo 2.
CI-2413 CGI & Compañía.
Arquitectura Web en Aplicaciones Empresariales Java/J2EE
JSP Java Server Pages.
ÍNDICE Introducción. Trabajar con Applets. Definición de Applet.
Java Applets Ing. Martín Jiménez.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Introducción a la arquitectura Web
Servlets.
Servlets Servlets.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
1.2 Sintaxis del lenguaje Java.
Java 2 Platform Enterprise Edition
Sesión en Servlets 31 de Marzo de Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
M.I. María Luisa González Ramírez Servlets y JSP.
Borland User Group - Guatemala Desarrollo de Servlets con Borland JBuilder 2006 Mario Enríquez Open Consult Diciembre 2006.
Lic. Rosemary Torrico Bascopé
JAVA. Introducción Que es java?  Código reusable  Multiplataforma.
Actividad 8 Equipo 3: o Gemma Cedillo Saucedo. o Alejandra Castillo Almazán. o Adriana Lara Mata. o Jorge Arregoytia García. o Aleida Villegas Rodríguez.
Servlets Roberto Moriyón. Servlets, I Objetos java, componentes web contenidas en un servidor (contenedor de servlets) que los reutiliza, que reciben.
Tema 6: Clases Antonio J. Sierra.
Tecnologías para el desarrollo de aplicaciones Web
Servlets, JSP, JavaBEANS,JDBC
Java Server Faces.
Una java servlet es un programa que se ejecuta en un servidor. Por lo general son aplicaciones Java que corren en un entorno de servidor web. Los Java.
Introducción a la Programación. Lenguaje de Máquina.
Tema 2a - JSP Dr. Diego Lz. de Ipiña Gz. de Artaza
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Servlets 18 de Marzo de Índice ¿Qué es un Servlet? ¿Cuándo y por qué usar Servlets? Estructura básica de un HttpServlet Servlet simple que genera.
JAVA: Servlets Diseño de aplicaciones web
Applets CONTENIDO ¿Que es un applet? Lo básico de un applet Ciclo de vida de un Applet Las etiquetas de HTML Pasando información a los applets.
TEMA 6. Applets y servlets
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
Fernando Alonso Blázquez Nicolás Serrano Bárcena Servlets 8 de Abril de 2008.
Lenguajes de programación para la web Lenguaje html Lenguaje java script Es un lenguaje estático para el desarrollo de sitios web Ventajas: Sencillo que.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris JavaServer Pages JSP.
Desarrollo con Servlets. Servlets: Introducción  Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Mario Osvaldo Bressano Servlets. Mario Osvaldo Bressano Arquitectura de 2 Capas.
JAVA: Servlets Diseño de servicios web © María de los Santos Pérez Hernández
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Aplicaciones Web de Servidor
Servlets 10 de Mayo de 2006.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
MIME EXTENSIONES DE CORREO INTERNET MULTIPROPÓSITO. SERIE DE ESPECIFICACIONES DIRIGIDAS AL INTERCAMBIO TRANSPARENTE DE TODO TIPO DE ARCHIVOS A TRAVÉS DE.
Cristian Fonnegra Marin
Sun Microsystems. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets y extienden su funcionalidad. También podrían correr.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
Java Server Pages JSP Otra forma de hacer servlets.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
 Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java a los CGIs (Common Gateway Interface) para construir.
Temario Java 2 Enterprise Edition Arquitectura Especificación Servlets Contenedores Cookies Sesiones.
 Una tecnología que permite combinar código HTML estático con código generado dinámicamente en un mismo fichero.  Ventajas: ◦ Separación de datos estáticos/dinámicos.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
UAA – Introduccion a Progracion Orientada Objetos Introducción al Java.
Transcripción de la presentación:

Java Enterprise Edition (Java EE) Introducción a los conceptos básicos sobre la programación Java para aplicaciones de Internet con Servlets y JSP JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE, UEX

Arquitectura Java EE Modelo de Capas A medida que evolucionan las aplicaciones Web, surge la necesidad de organizarlas. Inicialmente se emplean 3 capas. Actualmente es más adecuado el uso de 4.

Arquitectura Java EE Contenedores Java EE Entorno de ejecución específico para un conjunto de objetos de un determinado tipo y con unos fines concretos.

Arquitectura J2EE La especificación del J2EE define las siguientes capas de una aplicación: Capa de cliente. Corre en la máquina cliente. Capa de web. Corre en el servidor J2EE. Capa de negocio. Corre en el servidor J2EE. Capa de Sistema de Información Empresarial (EIS). Corre en el servidor EIS.

Capa de cliente Clientes web. Consisten de dos partes: páginas web dinámicas y un navegador web. Applets. ES una pequeña aplicación cliente escrita en Java que es ejecutada por la máquina virtual de Java instalada en el navegador web. Clientes de aplicación. Son aplicaciones que corren en la máquina cliente.Generalmente tienen una interfaz gráfica (GUI) creada usando Swing o Abstract Window Toolkit (AWT). También es posible usar un intérprete de comandos.

Capa Web Servlets: Son clases del lenguaje Java que procesan solicitudes y construyen respuestas de forma dinámica. Páginas JSP: Son documentos de texto que son ejecutados como servlets pero permiten un acercamiento más natural a la creación de contenido estático. Applets y Páginas html estáticas. Son usadas por los componentes web pero no se consideran componentes de J2EE. Lo mismo ocurre con clases utilitarias y JavaBeans del lado del servidor.

Arquitectura Java EE Estructura sitio Web Contienen los siguientes directorios. /*.* /WEB-INF/web.xml /WEB-INF/classes/*.class /WEB-INF/lib/*.jar Dentro del módulo web: Servlets Filters Listeners El contenido varia mucho en función del tipo de desarrollo utilizado.

Arquitectura Java EE Servlets Clase Java con un ciclo de vida concreto. Init: Ejecutado al cargarse la primera vez. doGet/doPost/do…: Ejecutados al recibirse peticiones de cada tipo concreto. Destroy: Ejecutado al finalizar. Importante: Se ejecuta en un hilo. Request/Response/Session.

Arquitectura Java EE JSP’s Al estilo de otros lenguajes, escribir código Java dentro de HTML. Se compila y se convierte en un servlet. Maneja los mismos objetos. Custom Tags. Ampliar la sintaxis de HTML. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Ejemplo</title> </head> <body> Hola <%=request.getParameter("nombre") %>. </body> </html> public class MiServlet extends HttpServlet { public MiServlet() { super(); } protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("<html>"); response.getWriter().println("<head><title>Ejemplo</title></head>"); response.getWriter().println("<body>Hola "+request.getParameter("nombre")+"</body>"); response.getWriter().println("</html>"); }

Arquitectura Java EE Custom Tags fichero.jsp <%@taglib prefix="t" uri="MisTags" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <t:mitag/> </body> </html>

IV. Arquitectura Java EE Añade un Servlet. protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletOutputStream out = response.getOutputStream(); out.println("<html>"); out.println("<head><title>MiServlet</title></head>"); out.println("<body>"); long numero = 0; HttpSession session = request.getSession(true); if (session.isNew()) { out.println("<h1>Acabo de pensar un número del 1 al 10, adivina cuál es:</h1>"); session.setAttribute("MiNumero", Math.round(Math.random()*10+1)); } else { out.println("<h1>Tengo pensado un número del 1 al 10, adivina cuál es:</h1>"); numero = (Long)session.getAttribute("MiNumero"); } if (request.getParameter("number")!=null) { try { if (Long.parseLong(request.getParameter("number")) == numero) { out.println("<h2>¡ Has Acertado !</h2>"); } else { out.println("<h2>Lo siento, vuelve a intentarlo.</h2>"); } } catch (NumberFormatException nfe) { out.println("<h2>Debes escribir un número.</h2>"); } out.println("<form method=\"post\">"); out.println("<label>Tu numero:</label><input type=\"text\" name=\"number\"/>"); out.println("</form>"); out.println("</body>"); out.println("</html>"); out.flush(); out.close();

JSP: Introducción Una tecnología que permite combinar código HTML estático con código generado dinámicamente en un mismo fichero. Ventajas: Separación de datos estáticos/dinámicos. Independencia de formato/plataforma. Sencillez (sabiendo servlets)

JSP: Introducción Comparaciones con otras tecnologías: Vs ASP (Active Server Pages). Vs Servlets. Los JSP nos permiten separar la parte dinámica de nuestras páginas Web del HTML estático. Simplemente escribimos el HTML regular de la forma normal y encerramos el código de las partes dinámicas en unas etiquetas especiales, la mayoría de las cuales empiezan con "<%" y terminan con "%>".

JSP: Introducción Damos extensión .jsp. Aunque el código parezca mas bien HTML, el servidor lo traduce a un servlet en la primera petición. 3 elementos en un JSP: Elementos script (scriptlets) Directivas Acciones

JSP: Introducción

JSP: Sintaxis Expresión JSP <%= expression %>; La Expresión es evaluada y situada en la salida. El equivalente XML es <jsp:expression> expression </jsp:expression> Las variables predefinidas son request, response, out, session, application, config, y pageContext. Scriptlet JSP <% code %>; El código se inserta en el método service. El equivalente XML es: <jsp:scriptlet> code </jsp:scriptlet>.

Ejemplo: ¿Como visualizar un contador de visitas en una JSP? JSP: Expresiones EXPRESIONES: <%= expresión %> Se evalúan y se insertan en la salida. Se tiene acceso a variables: request, el HttpServletRequest response, el HttpServletResponse session, el HttpSession asociado con el request (si existe) out, el PrintWriter (una versión con buffer del tipo JspWriter) usada para enviar la salida al cliente. Your hostname: <%= request.getRemoteHost() %> Ejemplo: ¿Como visualizar un contador de visitas en una JSP?

JSP: Scriptlets <% if (Math.random() < 0.5) { %> Have a <B>nice</B> day! <% } else { %> Have a <B>lousy</B> day! <% } %> Que se traducirá en: if (Math.random() < 0.5) { out.println("Have a <B>nice</B> day!");} else { out.println("Have a <B>lousy</B> day!");}

JSP: Declaraciones DECLARACIONES: <%! codigo %> que se insertan en el cuerpo de la clase del servlet, fuera de cualquier método existente. Permite insertar métodos, variables... No generan salida alguna. Se usan combinadas con scriptlets. <%! private int accessCount = 0; %> Accesses to page since server reboot: <%= ++accessCount %>

JSP: Declaraciones Como con los scriptlet, si queremos usar los caracteres "%>", ponemos "%\>". El equivalente XML de <%! Código %> es: <jsp:declaration> Código </jsp:declaration>

JSP: Directivas Afectan a la estructura general de la clase servlet. Normalmente tienen la siguiente forma: <%@ directive attribute="value" %> También podemos combinar múltiples selecciones de atributos para una sola directiva: <%@ directive attribute1="value1“ attribute2="value2“ ... attributeN="valueN" %>

JSP: Directivas PAGE: import="package.class“ o import="package.class1,...,package.classN". Esto permite especificar los paquetes que deberían ser importados. El atributo import es el único que puede aparecer múltiples veces. ContentType = "MIME-Type" o contentType = "MIME-Type; charset = Character-Set" Esto especifica el tipo MIME de la salida. El valor por defecto es text/html. Tiene el mismo valor que el scriptlet usando “response.setContentType”. isThreadSafe="true|false". Un valor de true (por defecto) indica un procesamiento del servlet normal, donde múltiples peticiones pueden procesarse simultáneamente con un sólo ejemplar del servlet, bajo la suposición que del autor sincroniza los recursos compartidos. Un valor de false indica que el servlet debería implementar SingleThreadModel.

JSP: Variables predefinidas REQUEST: Este es el HttpServletRequest asociado con la petición, y nos permite mirar los parámetros de la petición (mediante getParameter), el tipo de petición (GET, POST, HEAD, etc.), y las cabeceras HTTP entrantes (cookies, Referer, etc.). Estrictamente hablando, se permite que la petición sea una subclase de ServletRequest distinta de HttpServletRequest, si el protocolo de la petición es distinto del HTTP. Esto casi nunca se lleva a la práctica.

JSP: Variables predefinidas RESPONSE: Este es el HttpServletResponse asociado con la respuesta al cliente. Como el stream de salida tiene un buffer, es legal seleccionar los códigos de estado y cabeceras de respuesta, aunque no está permitido en los servlets normales una vez que la salida ha sido enviada al cliente.

JSP: Variables predefinidas OUT: Este es el PrintWriter usado para envíar la salida al cliente. Sin embargo, para poder hacer útil el objeto response, ésta es una versión con buffer de PrintWriter llamada JspWriter. Podemos ajustar el tamaño del buffer, o incluso desactivar el buffer, usando el atributo buffer de la directiva page. Se usa casi exclusivamente en scriptlets ya que las expresiones JSP obtienen un lugar en el stream de salida, y por eso raramente se refieren explícitamente a out.

JSP: Variables predefinidas SESSION: Este es el objeto HttpSession asociado con la petición. Las sesiones se crean automáticamente, por esto esta variable se une incluso si no hubiera una sesión de referencia entrante. La única excepción es usar el atributo session de la directiva page para desactivar las sesiones, en cuyo caso los intentos de referenciar la variable session causarán un error en el momento de traducir la página JSP a un servlet.

JSP: useBean <jsp:useBean id="myName" ... /> ... <jsp:setProperty name="myName“ property="someProperty" ... /> Se ejecuta siempre que haya una solicitud.

JSP: useBean Dentro de un useBean <jsp:useBean id="myName“ ... >   ...   <jsp:setProperty name="myName" property="someProperty" ... /> </jsp:useBean> Solo se ejecuta cuando haya que instanciar un bean.

JSP: useBean Name: Este atributo requerido designa el bean cuya propiedad va a ser seleccionada. El elemento jsp:useBean debe aparecer antes del elemento jsp:setProperty. Property: Este atributo requerido indica la propiedad que queremos seleccionar. Sin embargo, hay un caso especial: un valor de "*" significa que todos los parámetros de la petición cuyos nombres correspondan con nombres de propiedades del Bean serán pasados a los métodos de selección apropiados. Value: Este atributo opcional especifica el valor para la propiedad. Los valores string son convertidos automáticamente a lo que corresponda mediante el método estándard valueOf. No se pueden usar value y param juntos, pero si está permitido no usar ninguna.