II Curso Online JAVA-J2EE

Tamaño: px
Comenzar la demostración a partir de la página:

Download "II Curso Online JAVA-J2EE"

Transcripción

1 II Curso Online JAVA-J2EE TEMA 4 Desarrollo web con las tecnologías J2EE Autor: PCYTA / Centro de Excelencia de Software Libre de Castilla-La Mancha Versión: 1.0 Fecha: Revisado :46 Licencia: CC-by-sa 2.5

2 0 Licencia Usted es libre de: Copiar, distribuir y comunicar públicamente la obra Hacer obras derivadas Bajo las condiciones siguientes: uso Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el que hace de su obra). Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor Nada en esta licencia menoscaba o restringe los derechos morales del autor. Para ver la licencia visite: 2

3 UNIDAD IV. DESARROLLO WEB CON LAS TECNOLOGÍAS J2EE 0 Licencia Estructura de una aplicación Web Componentes y contenedores Web Elementos de una aplicación web Desarrollo y despliegue de una aplicación web El fichero descriptor: Web.xml Servlet y JSP Servlet (básico) JSP (Básico) Request and Response Servlet (avanzado) JSP (Avanzado) JSTL Frameworks: Struts, JSF y Spring Patrón MVC Struts JSF Spring AJAX Introducción Principales elementos de AJAX Ejemplo de uso de AJAX Otras posibilidades ANEXO INSTALACIÓN DE TOMCAT INTEGRACIÓN DE TOMCAT Y ECLIPSE IMPORTACIÓN, CONFIGURACIÓN, FUNCIONAMIENTO APP STRUTS

4 1 Estructura de una aplicación Web 1.1 Componentes y contenedores Web Como ya vimos en el Tema 3 de introducción a J2EE, la arquitectura J2EE define componentes y contenedores, en este tema veremos los Servlets y JSP que son componentes dedicados a la capa web. La siguiente figura (que ya vimos en el tema anterior) muestra donde están ubicados estos componentes: Tal y como hemos dicho las piezas fundamentales para la construcción de aplicaciones web con Java son los Servlets y los JSP, además, también se pueden usar los JavaBeans y las librerías de etiquetas (JSTL). Las aplicaciones web se despliegan en contenedores web, entre los más populares se encuentran: Tomcat (http://jakarta.apache.org/tomcat/index.html) que será el que utilizaremos en este curso, Caucho Resin (http://www.caucho.com/) y Jetty (http://jetty.mortbay.org/index.html). Los contenedores web se encargan principalmente de recibir las peticiones de los clientes remotos, dirigirlas a los componentes adecuados y devolver la respuesta generada, pero además se pueden encargar de la seguridad, controlar el acceso de los usuarios, gestionar el ciclo de vida de los componentes y un largo etcétera dependiendo de la implementación del contenedor. 4

5 1.2 Elementos de una aplicación web Una aplicación web se compone de los siguientes elementos: Componentes estáticos (ficheros html,css, javascripts, imágenes, etc). Servlets. JSPs. Clases de apoyo (Javabeans, POJOs, DAOs, etc) Librerías (ficheros JAR). Fichero descriptor del despliege (web.xml). Estos elementos tienen que organizarse dentro de una jerarquía de directorios predefinido en la especificación J2EE. La estructura mínima es la siguiente: Directorio raíz o padre (document root): será el que dé el nombre a la aplicación web. En este nivel de anidamiento se pueden encontrar los componentes estáticos y los JSPs, aunque se suelen crear subdirectorios para agrupar dichos elementos. Subdirectorio WEB-INF: en este directorio se debe encontrar el fichero descriptor web.xml. WEB-INF\classes: en este directorio se encuentran las clases de apoyo (ficheros *.class). WEB-INF\lib: aquí están las librerías (ficheros *.jar) que se utilizan en la aplicación, bien propietarias o de terceros. En la siguiente imagen podemos ver la estructura de un aplicación mínima que se llama HolaMundoServlet con un único Servlet: Las aplicaciones web las podemos encontrar dentro de los contenedores web (Tomcat) de dos formas distintas: 1. exploded o desempaquetadas, es decir, cada fichero se encuentra en cada directorio de forma separada siguiendo la estructura anteriormente mencionada; 2. packaged o empaquetadas, es decir, como un único fichero con la extensión WAR (Web Application Archive) que contiene toda la estructura mencionada (al igual que hacen los compresores o se realiza con los archivos JAR). Durante el desarrollo de las aplicaciones se suele trabajar con la primera forma y cuando la aplicación se pasa a entornos de producción se entrega como un solo fichero WAR. Los ficheros WAR se pueden crear mediante la herramienta jar que proporciona la JDK (jar cvf <nombreaplicacion>.war). También es algo que se puede realizar de forma automática mediante el IDE. 5

6 1.3 Desarrollo y despliegue de una aplicación web A continuación vamos a enumerar los pasos que es necesario llevar a cabo para desarrollar una aplicación web y posteriormente desplegar dicha aplicación en un contenedor web (Tomcat) para que sea accesible desde los navegadores. 1. Crear la estructura de directorios adecuada. Como ya hemos visto en el apartado anterior las aplicaciones web necesitan tener una estructura de directorios predefinida por lo que necesitaremos crear dicha estructura de directorios. También es recomendable, y así lo hacen la mayoría de IDEs por defecto, mantener separado las clases fuente de las clases compiladas, es decir, crear dos directorios principales para cada proyecto (los nombres son orientativos y pueden ser diferentes): src: mantiene el código fuente (ficheros.java) de los Servlets y las clases de apoyo. web: debajo de éste directorio se crea la estructura definida en el apartado anterior y donde se guardan los ficheros JSPs, el contenido estático y el fichero web.xml. En la siguiente imagen podemos ver en detalle la estructura que podría tener una aplicación web normal. 2. Implementación de la aplicación. Llevar a cabo el desarrollo del contenido estático y dinámico (JSPs, Servlets) que necesite la aplicación. Estos ficheros deberán ir en su directorio adecuado. En la figura anterior se ha creado el directorio JSP donde se guardarían los ficheros JSP. 3. Modificar el fichero web.xml. Una vez desarrollada la aplicación se debe crear el fichero descriptor web.xml. En este fichero se dan las instrucciones que necesita el contenedor web para poder desplegar correctamente la aplicación y ser capaz de recibir-ejecutar-responder correctamente las peticiones de los clientes remotos. Es un fichero XML cuyo contenido veremos en el apartado siguiente. 4. Compilar las fuentes. 6

7 Compilar los ficheros fuentes (Servlets y clases de apoyo). Los ficheros compilados (*.class) deben residir en el directorio WEB-INF\classes. Este proceso se puede realizar de forma automática mediante ANT (una herramienta similar al makefile), o bien, mediante el IDE. 5. Despliegue de la aplicación. Desplegar la aplicación en el contenedor web (Tomcat). Este proceso supone copiar el directorio de la aplicación web en el directorio webapps donde esté instalado el Tomcat. Como dijimos la aplicación se puede desplegar como directorio desempaquetado, o bien, como fichero WAR. 6. Probar la aplicación. Ahora sólo queda probar desde un navegador (Internet Explorer, Mozilla Firefox, etc) que la aplicación se ha desplegado correctamente y que el contenedor web es capaz de procesar correctamente las peticiones y devolver las respuestas adecuadas. DOCUMENT ROOT / CONTEXTO / PETICION HTTP Se denomina document root al directorio raiz de la aplicación web donde están contenidos todos los subdirectorios obligatorios (WEB-INF, web.xml, etc) y los ficheros desarrollados (JSPs, Servlets, contenidos estáticos). El contexto es el nombre del document root que identifica de una forma univoca a la aplicación web dentro de un contenedor web. La petición HTTP que se realiza desde el navegador cliente tiene la forma: 1.4 El fichero descriptor: Web.xml El fichero web.xml es el encargado de configurar la aplicación web para que el contenedor sea capaz de resolver adecuadamente las peticiones HTTP. Este fichero distingue entre mayúsculas y minúsculas y, además, es importante el orden en que se encuentran las etiquetas XML. En dicho fichero XML se identifican las siguientes partes (vamos a resumir las más comunes): Prólogo: la cabecera de todo fichero XML. Para la especificación J2EE 1.3 es: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> Rutas de alias: cuando un contenedor recibe una petición tiene que ser capaz de determinar que componente de que aplicación web debe responder. Este se realiza definiendo unas rutas de mapeo. Por ejemplo, a continuación definimos que la aplicación web tiene un Servlet llamado HolaServlet y que se mapea sobre la ruta <servlet> 7

8 <description>holaservlet</description> <display-name>holaservlet</display-name> <servlet-name>holaservlet</servlet-name> <servlet-class>holaservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>holaservlet</servlet-name> <url-pattern>/servlet/holaservlet</url-pattern> </servlet-mapping> Parámetros de inicialización para la aplicación web. Se definen con las siguientes etiquetas: <context-param> <param-name>nombrebasedatos</param-name> <param-value>oraclepruebas</param-value> </context-param> Filtros: definen que filtros (clases, código implementado) se deben aplicar a que peticiones y en que orden. Se definen con las etiquetas <filter> y <filter-mapping>. Referencias a recursos: son necesarios cuando los componentes web hacen referencias a recursos del entorno, por ejemplo, bases de datos. <resource-ref> <res-ref-name>jdbc/bookdb</res-ref-name> <res-type>javax.sql.datasource</res-type> <res-auth>container</res-auth> </resource-ref> 8

9 2 Servlet y JSP 2.1 Servlet (básico) Para situar históricamente la creación de los Servlets tenemos que volver la vista hacia un origen de Internet donde todo el contenido que se podía ver en los servidores era estático, formado por páginas HTML interrelacionadas con hiperenlaces. Posteriormente, se implementa la mejora de hacer que los servidores web generasen contenido dinámico, es decir, que dependiendo de los parámetros que se enviasen a un servidor (usuario conectado, catálogo de productos elegido, etc) la respuesta se generase de forma dinámica y fuese diferente dependiendo de esos parámetros. Esta mejora implica que ya no sólo tenemos en el servidor páginas HTML fijas, sino que es necesario tener programas que generen este HTML con cada nueva petición. Surgen entonces los CGI que son los programas que generan el contenido dinámico y que se implementan en diversos lenguajes (C, Perl, Python, etc). Evidentemente, en Sun no se quedan atrás y definen una especificación que cumpla con el cometido de estas aplicaciones CGI. A estos programitas los denominan Servlets, en contraposición a los applets que son programitas que se ejecutan en el cliente, mientras que los Servlets se ejecutan en el servidor. Resumiendo, los Servlets son objetos de Java que siguen la especificación y el API correspondiente y que sirven para dar la capacidad de generar contenido dinámico a un servidor http. Veamos nuestro primer y sencillito ejemplo de Servlet, evidentemente hablamos del famoso 'Hola Mundo'. public class HolaMundoServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head><title>hola Mundo</TITLE></HEAD>"); out.println("<body>"); out.print(" HOLA MUNDO! "); out.print("la fecha actual es: " + java.util.gregoriancalendar.getinstance().gettime().tostring()); out.println(" </BODY>"); out.println("</html>"); out.flush(); out.close(); } } 9

10 Revisando el código tendríamos que darnos cuenta de: 1. Nuestro primer servlet y todos los servlets heredan de la clase HttpServlet. 2. Se implementan el método doget. Lo estudiaremos en el apartado tercero. 3. Ambos métodos tienen como parámetros dos objetos: request y response. Estos objetos están directamente relacionados con la petición al servidor y la respuesta devuelta por este. 4. En el objeto response se indica que la respuesta es un fichero html (response.setcontenttype("text/html")). 5. Al response se le pide una salida donde escribir (PrintWriter out=response.getwriter()). 6. En la salida vamos escribiendo código HTML (out.println("<html>")). 7. Y finalmente se cierra dicho fichero de salida (out.close()). Sencillo verdad? Ahora que ya empezamos a comprender los servlets puedes levantar el Tomcat que te has instalado y desde un navegador vuelve a revisar los ejemplos de servlets que vienen (http://localhost:8080/examples/servlets/index.html). 2.2 JSP (Básico) Ya hemos visto que con los servlets se consigue mediante Java devolver contenido dinámico desde un servidor http a los clientes. Si seguimos con la visión histórica, una vez que se crearon los Servlets los programadores Java estarían muy emocionados por todas las posibilidades que ofrecían. Ahora bien, cuál es el problema más evidente que tienen los Servlets?. Piénsalo un rato vamos, quiero decir 30 segundos, pues es algo que salta a la vista. EXACTO! Que dentro de las aplicaciones se encuentra embebido el código HTML. No existe separación entre la parte de la presentación y la parte propia de programación de la lógica de la aplicación. Para aquellos que no vean claramente el problema os contaré como funcionan las cosas en el mundo laboral. En las empresas suele existir un departamento de diseño gráfico, estos se encargan de la parte visual y, normalmente, serán expertos en código HTML o, más bien, en Dreamweaver (es un departamento donde gustan los colores y en pocas ocasiones se da que les guste los unos y ceros, suelen ser licenciados en Bellas Artes). Y, por otro lado, tenemos el departamento de desarrollo, estos son expertos en programación y, normalmente, ven en monocromo y la calidad visual de sus diseños deja mucho que desear (nos importa más que funcione bien, solemos ser Ingenieros Informáticos). En casi todos los proyectos los diseñadores realizan la parte visual de un proyecto, el cliente lo aprueba y finalmente eso se traduce en una maqueta HTML que se pasa al departamento de desarrollo para que lo integre en la aplicación web. Si sólo tuviésemos Servlet, el programador cogería el HTML lo integraría dentro del código Java y ya sería una página dinámica. Ahora bien, qué pasa si hay que cambiar el diseño HTML? Quién y cómo se realizan las modificaciones? Sabiendo que cada departamento controla de una sola cosa, una solución estaría en juntar el diseñador con el programador para que éste le diga en que clases está el HTML de tal página que hay que modificar y así lo pueda ir cambiando el diseñador. Evidentemente, el diseñador ya no tendría la posibilidad de utilizar ninguna herramienta visual (como Dreamweaver) para ir realizando las modificaciones y para cada cambio hay que estar recompilando la clase para poder ver el resultado. Otra solución sería que el diseñador hiciese las modificaciones sobre la maqueta para ver el resultado rápidamente y una vez modificada, volver a pasar todo el código al programador para que volviese otra vez a meterlo en los Servlets (seguro que el programador se iba a poner muy contento). Finalmente, se puede optar a tener programadores con conocimiento de diseño HTML, 10

11 pero este caso no siempre se da. No os suena todo un poco engorroso y poco viable para conseguir hacer proyectos de una forma sencilla? Pues evidentemente la mejor solución es intentar mantener esos ficheros HTML con su aspecto prácticamente original, incrustándole pequeños trozos de código Java que hagan la página dinámica (esto lo haría el programador) y enseñar al diseñador que esa parte no la debe tocar e incluso decirle que con el Dreamweaver esa parte le va resultar invisible. Mantener el código HTML con el mínimo código Java posible y llevarnos la lógica de negocio a las clases (Servlets y clases de apoyo). Pues esto es lo que se consigue con los JSPs. Resumiendo: Mantener separadas la vista de la lógica de negocio. Simplificar el desarrollo de las aplicaciones web mediante JSP, Javabeans y librerías de etiquetas (JSLT). Facilitar las modificaciones visuales (HTML). Además, los contenedores web recompilan automáticamente los JSP cuando se realizan modificaciones sobre dichos ficheros. Veamos el ejemplo de HolaMundo ahora con JSP. <HTML> <HEAD><TITLE>Hola Mundo</TITLE></HEAD> <BODY> HOLA MUNDO! La fecha actual es: <%= java.util.gregoriancalendar.getinstance().gettime().tostring() %> </BODY> </HTML> Significa esto que los JSP son mejores que los Servlets y no debemos utilizar estos últimos?. Evidentemente no, en la práctica los que se hace es utilizar ambos, veremos como la tendencia actual es desarrollar las aplicaciones web siguiendo el patrón MVC (Modelo-Vista-Controlador) y los Servlets se encargan de hacer de controladores y los JSPs de implementar la vista. 2.3 Request and Response La siguiente figura representa el proceso de petición y respuesta HTTP que se trata con los Servlet (Request y Response): 11

12 En este proceso podemos distinguir tres aplicaciones: el navegador cliente o BROWSER (IE, Mozilla, Opera, etc), el servidor web o WEB SERVER (Apache, IIS, etc) y el contenedor de servlets o SERVLET CONTAINER (Tomcat, Resin, etc). Normalmente, los límites entre el servidor web y el contenedor web son muy difusos por encontrarse dichas aplicaciones, en la mayoria de los casos, en la misma máquina. A continuación vamos a aclarar los pasos que se llevan a cabo por cada una de las aplicaciones. El usuario desde su navegador hace la petición de una página y le sale el típico formulario de petición de datos para que se registre. Lo que tiene en frente es una página HTML con un formulario (FORM) que contiene campos de entrada de datos (INPUT) y un botón de enviar los datos (SUBMIT). 12

13 El usuario envía el formulario y el servidor web se encarga de recibir la petición http (HTTP REQUEST) y pasar dicha petición al contenedor de servlets que se encarga de crear un objeto que representa la petición http (HttpServletRequest) y una sesión (HttpSession) que sirve para identificar al mismo usuario durante toda la navegación. El contenedor se encargará de decidir que Servlet tiene que ejecutarse, para ello utilizará el fichero descriptor web.xml donde consultará que servlet se tiene que ejecutar según la ruta URL solicitada. Una vez identificado el servlet, realizará las tareas programadas, por ejemplo, comprobar que llegan todos los datos estan correctamente escritos en el formulario y si son correctos almacenar en la base de datos, ejecutando las clases adecuadas (el servlet y las clases que pueda ser invocadas desde el 13

14 mismo). Finalmente, en el servlet se creará la respuesta http (HttpServletResponse) que devolverá al navegador cliente a través del servidor web. Esta respuesta normalmente será una página HTML que en nuestro caso nos confirmaría el alta del registro del usuario. La siguiente tabla resume que es lo que contiene la petición (request) y la respuesta (response) HTTP: REQUEST La petición es la información que envía un cliente a un servidor, esta información incluye quién ha realizado la petición (dirección ip, tipo navegador, etc) y la información propiamente introducida por el usuario en el formulario. RESPONSE La respuesta es la información que envía el servidor al cliente. Se debe indicar que tipo de información se está devolviendo, si es texto (html, plain) o binario (imagen). Además, se devuelve también de cookies, headers, etc. La petición http se compone de: - header: información de quien envía la petición. - method: método de envío. Los dos más 14

15 conocidos son GET y POST, con el primero los datos enviados se añaden a la URL, con el segundo se envían como un dato. - request data: Los datos propiamente. 2.4 Servlet (avanzado) La siguiente imagen muestra la jerarquía de clases del API de Servlets en Java: Cuando creamos un nuevo Servlet heredamos de la clase HttpServlet. Tal y como hemos comentado en el apartado anterior, cuando llegan nuevas peticiones de un cliente, el contenedor crea los objetos HttpServletRequest y HttpServletResponse y pasa dichos objetos al método service() de la clase HttpServlet. Y finalmente, tenemos la clase HttpSession que se encarga de mantener información relacionada con la sesión. En la siguiente figura podemos ver los métodos que se implementan en un Servlet y el ciclo de vida que presentan dichos métodos dentro del contenedor: 15

16 El método init() se llamará una única vez cuando se crea una instancia del Servlet (por defecto, se crea una sola instancia de cada Servlet definido en el fichero web.xml en tiempo de despliegue de la aplicación web). Éste método sirve para realizar tareas de inicialización (por ejemplo, crear las conexiones a base de datos). El método service() se llama cada vez que llega una nueva petición y éste método invoca doget() o dopost() dependiendo del tipo de petición http que haya llegado. Es en estos métodos donde se programa realmente la aplicación. Dentro de las tareas que se llevan a cabo en dichos métodos podemos resumir: Extraer información enviada por el cliente (http parameter) de la petición http. Leer (get) o escribir (set) atributos en los Scope Objects (veremos que son a continuación). Llevar a cabo la lógica de negocio o el acceso a base de datos. Opcionalmente, redirigir la petición a otro componente web (Servlet o JSP). Crear el mensaje de respuesta http y enviarlo al cliente. Finalmente, cuando la instancia del Servlet se elimina (por quitar la aplicación web del contenedor o por detener el contenedor) se invoca el método destroy(). En éste método se llevan a cabo tareas de finalización (por ejemplo, cerrar conexiones a base de datos). Scope Objects. Se denomina Scope Objects a los objetos que permiten compartir información guardada en sus atributos entre distintos componentes de las aplicaciones web. Un ejemplo claro donde se utilizan este tipo de objetos es en una aplicación de comercio electrónico donde se está manteniendo durante toda la sesión de un usuario el carrito de la compra con la lista de los elementos seleccionados. Existen cuatro tipos de objetos predefinidos dependiendo del tipo de alcance (scope) que tengan: Web context o ServletContext (contexto): los objetos almacenados en éste alcance estarán disponibles por todos los componentes web dentro de una misma aplicación web. Session (sesión): el alcance de estos objetos es a nivel de la misma sesión. Request (petición): los objetos con este alcance se comparten por una misma petición. Page (página): los objetos están disponibles a nivel de página JSP. 16

17 Dentro del código de nuestras aplicaciones la forma de acceder a los valores guardados en estos objetos es idéntica, mediante el método setattribute() para almacenar valores y getattribute() para recuperarlos. HTTPSession. Vamos a hablar más detalladamente de los objetos que tienen el alcance de sesión por ser los que se utilizan más frecuentemente en las aplicaciones. Lo primero que debemos recordar es lo que ya se dijo en el primer tema del protocolo HTTP que es un protocolo sin estado. Las aplicaciones web utilizan este protocolo para realizar la comunicación entre cliente y servidor, para ello es necesario que se dote a los servidores con la capacidad de mantener la lista de peticiones sucesivas desde un mismo cliente simulando una sesión. Como antes dijimos, el ejemplo típico es una tienda de comercio electrónico donde es deseable que un usuario que se conecte a nuestra tienda tenga la sensación de que las peticiones no sean inconexas sino que formen parte de una misma sesión y así se pueda mantener el carrito de la compra durante dicha sesión. public class ComprarCarritoServlet extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Recuperamos de la sesión del usuario el carrito de la compra HttpSession session = request.getsession(); ShoppingCart carrito = (ShoppingCart) session.getattribute ("carrito");... // Calculamos el precio total de la compra realizada por el usuario double total = carrito.gettotal(); } } Otro ejemplo muy recurrido es en las aplicaciones de banca donde se nos pide autenticarnos para poder recuperar nuestros datos bancarios. Si no mantenemos la información del usuario autenticado en la sesión, cada vez que tengamos que recuperar algún dato bancario (listado de cuentas, saldos, movimientos, etc) tendríamos que volver a solicitar que el usuario se autenticase. Sin embargo, lo normal es guardar en la sesión el identificador del usuario y en cada consulta recuperarlo de dicho objeto. 2.5 JSP (Avanzado) Tal y como dijimos en la introducción a los JSPs, la principal característica que presentan respecto a los Servlet es la separación entre la presentación y la lógica de negocio de la aplicación. En la siguiente figura vemos a la izquierda un Servlet donde la lógica de la aplicación y la presentación están juntos, a la derecha podemos ver como utilizando conjuntamente los Servlets con los JSPs mejoramos la aplicación dividiendo las tareas, pasando el Servlet a realizar tareas de controlador y dejando a la JSP la presentación. 17

18 LOS JSPs SON SERVLETS! Es importante reseñar que el contenedor (Tomcat) se encarga de coger cada JSP de las aplicaciones web, traducirlos y compilarlos generando los correspondientes Servlet y clases de forma transparente. Para comprobarlo, podemos ir al directorio donde tengamos instalado el Tomcat y revisar el contenido del directorio 'work' que es donde se generan dichos ficheros intermedios. Podemos ver que se han añadido los métodos init(), destroy() y service(), es decir, los mismos métodos que en los Servlets. Se tienen como parámetros del método service las instancias de los objetos request y response, y además, se crean variables que referencian a los Scope Objects comentados en el apartado anterior (pagecontext, session, application) y, por último, tenemos la variable out que referencia a la salida del response. Existen tres formas de añadir código Java en una JSP: 1. Expresiones: las expresiones JSP se utilizan para añadir el valor resultante de una expresión Java convertido a un string en la página HTML devuelta al navegador. El formato es <%= expresion %>. 2. Scriptlets: cuando se quiera introducir varias instrucciones Java se debe incluir dentro de estos bloques. El formato es <% código Java %>. 3. Declaraciones: estos bloques se utilizan para definir variables y métodos que vayan a ser 18

19 utilizados en el JSP. En éste código se realizan declaraciones para inicialización y finalización pues es código que se incluye en los métodos Init y Destroy. El formato es <%! Código declarativo %>. Javabeans. Los Javabeans son clases de Java que siguen una serie de reglas de diseño. Estas reglas están relacionadas con los atributos de la clase y los métodos de acceso a dichos atributos. Cualquier clase de Java que siga dichas reglas puede ser un Javabean. Los atributos de un Javabeans han de ser: Simples, es decir, tienen que contener un valor único o indexado dentro un array. De lectura/escritura, sólo lectura o sólo escritura. El acceso a dichos atributos se tiene que hacer definiendo métodos setxxx() y getxxx(), donde XXX es el nombre de un atributo. Además, si un Javabean implementa algún método constructor debe ser un constructor que no tenga ningún parámetro. Los Javabeans se pueden utilizar dentro de los JSP mediante etiquetas que permiten crear y acceder a los atributos de dichos objetos de una forma más sencilla que con scriplet. En el siguiente ejemplo podemos ver en la izquierda el código que se necesita para acceder al objeto del carrito de la compra que se encuentra en la sesión mediante scriplet y en la derecha el mismo acceso pero mediante el uso de etiquetas JSP para acceso a Javabeans. <% ShoppingCart carrito = (ShoppingCart)session.getAttribute("carrito"); // Si el usuario no tiene en sesión un objeto carrito es necesario crear uno nuevo. if (carrito == null) { carrito = new ShoppingCart(); session.setattribute("carrito", carrito); } %> <jsp:usebean id="cart" class="cart.shoppingcart" scope="session"/> 2.6 JSTL Asociado a los JSPs aparece las librerías de etiquetas JSTL (JavaServer Pages Standard Tag Library). Estas librerías de etiquetas encapsulan funcionalidades comunes que se realizan dentro de los JSPs, por ejemplo, en vez de mezclar código HTML con scriptlet para realizar un bucle y pintar una lista, se define una nueva etiqueta que realiza dicha labor. A continuación resumimos las ventajas que ofrece diseñar JSPs utilizando las librerías de etiquetas: No tenemos que escribir el código que encapsulan nosotros sino que es código implementado y probado (Reusabilidad). Sólo necesitamos aprender y utilizar un sencillo conjunto de etiquetas que vienen 19

20 proporcionadas por las plataformas J2EE. Estas etiquetas suelen estar más optimizadas que el código que nosotros implementásemos. Mediante la utilización de etiquetas la portabilidad de las aplicaciones JSP sigue manteniéndose. En la siguiente tabla se presentan los distintos grupos de librerías de etiquetas que nos podemos encontrar en la versión 1.1 de JSLT: Core (prefijo: c) XML (prefijo: x) Internationalization (prefijo: fmt) Database (prefijo: sql) Functions (prefijo: fn) Soporte de variables, control de flujo y gestión de URL. Control de flujo, transformaciones. Formateo de mensajes, números y fechas. Realización de consultas y actualizaciones SQL. Longitud de collections, manipulación de cadenas. En la siguiente tabla podemos ver en la izquierda una página JSP con scriptlet donde se muestra el contenido de una agenda de clientes y en la derecha el mismo resultado se obtiene utilizando las librerías de etiquetas. page import="com.cursojava.model.cliente, java.util.*"%> <p><h1>listado de clientes</h1></p> <% List agenda = (List)request.getAttribute("agenda"); Iterator agendaiter = agenda.iterator(); while(agendaiter.hasnext()) { Cliente cliente = (Cliente)agendaIter.next(); if( (cliente!=null ) && (cliente.getlastname()!=null) && (cliente.getnombre().length() > 0)) { %> <%=cliente.getnombre()%><br/> <% } else { %> INDEFINIDO<br/> <% } } %> <p><h5>última actualización: <%=new Date()%></h5></p> taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <p><h1>listado de clientes</h1></p> <c:foreach items="${agenda}" var="cliente"> <c:choose> <c:when test="${not empty cliente.nombre}" > <c:out value="${cliente.nombre}"/><br/> </c:when> <c:otherwise> INDEFINIDO<br/> </c:otherwise> </c:choose><br/> </c:foreach><br/> <jsp:usebean id="now" class="java.util.date" /> <p><h5>last Updated on: <c:out value="${now}"/></h5></p> 20

21 3 Frameworks: Struts, JSF y Spring 3.1 Patrón MVC En este apartado vamos a estudiar el patrón MVC (Model-View-Controler), aunque ya se le dejó como tarea al alumno estudiar dicho patrón en el tema 1. Es necesario que el alumno comprenda perfectamente dicho patrón para poder entender la base en la que se fundamentan los frameworks que posteriormente se presentarán en esta lección. La siguiente figura muestra el patrón MVC, donde se pueden ver los componentes que lo integran y como interactúan entre ellos: Mediante este patrón se consigue definir una arquitectura de capas para una aplicación Web. La siguiente tabla resume las tareas que se llevan a cabo por cada componente del patrón: MODEL o capa de lógica de negocio VIEW o capa de presentación - Define los datos y la lógica de negocio de la aplicación. - En esta capa se llevan a cabo las consultas a BD, los procesos del negocio y las ordenes de procesamiento. - Nos encontraremos con los datos y el comportamiento que sea independiente de la presentación - Muestra la información según el tipo de cliente (HTML, XML, etc). - Presenta los resultados de la lógica de negocio - No trata como ni de donde se obtiene la información (esto es parte del modelo) 21

22 CONTROLLER - Se utiliza como conector entre la interacción del cliente y los servicios o capa ofrecidos por el servidor. controladora - Cuando se realiza una petición al controlador, éste decide quién va a gestionar dicha petición y que información se debe devolver. Este patrón no es exclusivo de las aplicaciones web sino que se puede utilizar en cualquier tipo de aplicación, téngase en cuenta que es un patrón de diseño aportado originariamente por el lenguaje Smalltalk para el desarrollo de aplicaciones con dicho lenguaje (http://stwww.cs.uiuc.edu/users/smarch/st-docs/mvc.html). 3.2 Struts Struts es uno de los primeros frameworks que surgen para el desarrollo de aplicaciones web java siguiendo el patrón MVC. Es un proyecto open source que se encuentra desarrollado en Apache Jakarta (http://struts.apache.org/1.3.8/). Las características principales que presenta Struts son: Es un framework MVC. Se utiliza para construir aplicaciones web utilizando Servlets y JSPs. Esta desarrollado utilizando patrones de diseño (Singleton, composition view, delegate). Incluye un librería de etiquetas para facilitar el desarrollo de los JSPs. Struts está enfocado sobre todo en el Controlador, por eso se dice que es un framework independiente del Modelo y la Vista. Struts se integra con cualquier tipo de tecnología utilizada en el Modelo (JavaBeans, POJOs, EJBs, etc) y en la Vista (JSPs, JSTL, Velocity, etc) En la siguiente figura presentamos la estructura y el funcionamiento de Struts: 22

23 Paso 1. En este entorno, todas las peticiones que se realicen se deben corresponder con alguna acción que debe estar mapeada en el fichero de configuración XML de Struts (struts-config.xml). Ahí se especifican todas las relaciones entre acciones y clases, formularios y clases, acciones y jsps de presentación, que globalmente conforman el mapa de la aplicación. Pasos 2 y 3. Cuando la petición realizada implique el envío de un formulario por parte del cliente, en dicho fichero se podrá configurar una clase ActionForm asociada a dicha acción y si se debe realizar algún tipo de validación. Struts se encargará de recuperar los parámetros enviados, instanciar la clase ActionForm adecuada, poblar sus atributos (que deberán nombrarse igual que los parámetros) y realizar las validaciones adecuadas. Cuando todo sea correcto, Struts se encargará de pasar dicha instancia de ActionForm a la acción solicitada. Pasos 4, 5 y Una acción se corresponderá con una clase Java (heredera de la clase Action de 6. Struts). En este punto Struts se encarga de invocar el método perform() de dicha clase Action y será en esta clase donde se realizarán las acciones que se hayan implementado para llevar a cabo la lógica de negocio (guardar en BD un registro, consultar un listado de BD, enviar un de notificación, etc), bien en la propia clase o invocando los objetos de negocio correspondientes. Pasos 7, 8 y Una vez llevada a cabo la lógica de negocio, el controlador de Struts se encargará de 9. redirigir el flujo a la parte de la vista. Se invocarán el JSP asociado a la petición y se construirá la página de resultado utilizando si fuese necesario los datos proporcionados por los objetos de negocio, devolviendo dicha página al cliente. A continuación se indican como configurar los ficheros de una aplicación web para que se utilice Struts. Fichero descriptor web.xml Las aplicaciones desarrolladas con Struts son aplicaciones Web Java y, por lo tanto, tienen que seguir la estructura definida en apartados anteriores y también tendrán el fichero descriptor web.xml. En este fichero se necesita configurar la siguiente información: La definición y el mapeo URL del ActionServlet. Añadir el fichero de configuración de struts como parámetro de inicialización. (strutsconfig.xml). Definir la librería de etiquetas de Struts. Fichero configuración struts-config.xml Este es el fichero principal de Struts. En este fichero se encuentran las siguientes etiquetas XML que definen los siguientes elementos: <form-beans> contiene las definiciones de los FormBean (formularios) indicando el nombre y el tipo (nombre de la clase). <action-mapping> contiene la definición de las acciones. Se utiliza una etiqueta n <action> para cada una de las URLs que los navegadores pueden solicitar y quien será el Servlet (ActionServlet) encargado de responder a dicha petición. 23

24 <global-forwards> contiene la definición de los forwards comunes a toda la aplicación web. Formularios. En Struts se pueden utilizar dos tipos de formularios: ActionForm y DynaActionForm, que se definen en el fichero struts-config.xml. Con los primeros tenemos que crear clases que hereden de ActionForm y que únicamente tengan atributos y los métodos set y get de acceso a los mismo. Con el segundo tipo (DynaActionForm) no es necesario crear nuevas clases sino que en fichero strutsconfig.xml se listan los atributos o propiedades que lo componen y el tipo de cada propiedad. Para cada uno de los formularios definidos en struts-config.xml, el controlador de Struts realiza las siguientes tareas: Comprobar si el formulario (objeto) se encuentra en la sesión, en el caso de que no exista dicho objeto, se crea uno nuevo. Llamar a los métodos set del objeto formulario con cada parámetro de la petición cuyo nombre sea igual a alguna propiedad del formulario. Pasar el formulario con sus atributos actualizados como parámetro del método execute() de la acción que se haya invocado. Acciones. Las acciones en struts están enfocadas en desarrollar toda el flujo de control de la aplicación. Cuando el controlador principal de Struts recibe una petición, según la parametrización del fichero struts-config.xml redirige el flujo de control a la acción adecuada. La acción es una clase que hereda de org.jakarta.struts.action.action y que tendrá un método execute() donde se encontrará la lógica de negocio que tiene que llevarse a cabo (bien dentro de este ActionServlet o llamando a otras clases auxiliares). Finalmente, devuelve un objeto ActionForward que define el destino (JSP, otra accion, etc) donde debe dirigirse la ejecución. 3.3 JSF JSF (Java Server Faces) es el segundo framework que vamos a estudiar basado en el patrón MVC. Al igual que Struts, JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web. Hay que tener en cuenta JSF es posterior a Struts, y por lo tanto se ha nutrido de la experiencia de éste, mejorando algunas de sus deficiencias. A continuación se presentan algunos de los puntos por los que JSF parece una tecnología muy interesante: Hay una serie de especificaciones que definen JSF:JSR 127, JSR 252, JSR 276. JSF trata la vista (el interfaz de usuario) de una forma similar al estilo de Swing, Visual Basic o Delphi (Drag & Drop), donde la programación del interfaz se hace a través de componentes y basada en eventos (se pulsa un botón, cambia el valor de un campo,...). JSF es muy flexible. Por ejemplo, nos permite crear nuestros propios componentes, o crear nuestros propios render para pintar los componentes según nos convenga. Luego no se limita a navegadores HTML. Es muy sencillo de utilizar pero sobre todo si se tiene un IDE que ofrezca esta capacidad. JSF no puede competir en madurez e integración en las aplicaciones actuales con Struts, pero si 24

25 puede ser una opción muy recomendable para nuevos desarrollos, sobre todo si todavía no tenemos experiencia con Struts. Aunque hay que tener claro que para poder explotar la verdadera potencia de JSF es necesario utilizar IDEs que proporcionen esta tecnología. En la siguiente imagen podemos ver la estructura y funcionamiento de JSF de forma sencilla. Como en otros frameworks basados en el patrón MVC, JSF tiene un servlet controlador que se denomina FacesServlet y que se encarga de recibir las peticiones y ejecutar las acciones definidas en el fichero de configuración faces-config.xml. Las páginas JSF se construyen como un árbol de componentes de Interfaz de Usuario (UI Components). Estos componentes se pueden asociar con un modelo de objetos denominado backing beans, estos objetos son los encargados de implementar la lógica de negocio, permitiendo mapear parámetros de la petición sobre atributos de estos objetos y eventos del cliente sobre sus métodos. Las respuestas se construyen cogiendo los componentes de Interfaz y transformándolos en un tipo de cliente particular (por ejemplo, o un navegador HTML o un navegador VML de un teléfono móvil). A continuación se indican como configurar los ficheros de una aplicación web para que utilice JSF. Fichero descriptor web.xml. En este fichero se necesita configurar la siguiente información: La definición y el mapeo URL del FacesServlet. Añadir varios parámetros del contexto. Fichero configuración faces-config.xml. Este es el fichero principal de JSF. En este fichero se encuentran las siguientes etiquetas XML que definen los siguientes elementos: <navigation-rule> contiene las reglas de navegación de la aplicación. Estas reglas determinan que página va después de que un usuario pinche un botón o un enlace. <managed-bean> contiene la declaración de los bean manegados o backing bean. Estos son objetos de la capa del modelo que mantienen datos, validaciones, gestiones de eventos y la lógica de navegación. Páginas JSF. La creación de las páginas es una tarea del desarrollador. Esta tarea implica definir los componentes UI que tendrá la página, mapear dichos componentes sobre el modelo de objetos (backing beans) y añadir, si es necesario, las llamadas a los eventos del modelo. 25

26 Backing beans u objetos del modelo. Como ya hemos dicho, los componentes de la Interfaz de Usuario (UI) se pueden mapear sobre las propiedades (atributos) de los objetos del modelo. Además, los eventos que se generan en los navegadores (pulsar un botón, cambiar el valor seleccionado de una lista, etc) también se pueden relacionar con métodos de dichos beans. 3.4 Spring Spring es un framework ligero que se puede utilizar tanto para desarrollar aplicaciones web J2EE como aplicaciones de escritorio Java. El objetivo de Spring es no ser intrusivo, es decir, aquellas aplicaciones configuradas para usar beans (clases) mediante Spring no necesitan depender de interfaces o clases propias del framework (como ocurre en Struts donde los formularios y las acciones heredan de clases de Struts) sino que la configuración particular de la aplicación se definirá en ficheros descriptores XML. De esta forma Spring permite que objetos del negocio y de acceso a datos sean reutilizables. Las características principales que proporciona Spring son: Gestión de configuración basada en JavaBeans, aplicando los principios de Inversión de Control (IoC). Esto hace que la configuración de aplicaciones sea rápida y sencilla. Un gestor de transacciones sencillo, permitiendo añadir nuevos gestores de transacción (pluggables), y haciendo sencilla la demarcación de transacciones sin tratarlas a bajo nivel. Se incluyen estrategias genéricas para JTA y un único JDBC DataSource. En contraste con el JTA simple o EJB CMT, el soporte de transacciones de Spring no está atado a entornos J2EE. Una capa de abstracción JDBC que ofrece una jerarquía propia de Excepciones, evitando la necesidad de obtener de SQLException los códigos que cada gestor de base de datos asigna a los errores, simplifica el manejo de errores, y reduciendo la cantidad de código necesario. Integración con Hibernate, JDO e ibatis SQL Maps en términos de soporte a implementaciones DAO y estrategias con transacciones. Especial soporte a Hibernate añadiendo convenientes características de IoC, y solucionando muchos de los comunes problemas de integración de Hibernate. Todo ello cumpliendo con las transacciones genéricas de Spring y la jerarquía de excepciones DAO. Funcionalidad AOP. Se puede aplicar AOP a cualquier objeto gestionado por Spring, añadiendo aspectos como gestión de transacciones declarativa. Un framework MVC (Model-View-Controller), construido sobre el núcleo de Spring. Este framework es altamente configurable vía interfaces y permite el uso de múltiples tecnologías para la capa vista como pueden ser JSP, Velocity,Tiles, itext o POI. De cualquier manera una capa modelo realizada con Spring puede ser fácilmente utilizada con una capa web basada en cualquier otro framework MVC, como Struts, WebWork o Tapestry. La arquitectura en capas de Spring ofrece mucha de flexibilidad. Toda la funcionalidad está construida sobre los niveles inferiores. Por ejemplo se puede utilizar la gestión de configuración basada en JavaBeans sin utilizar el framework MVC o el soporte AOP. 26

27 27

28 4 AJAX 4.1 Introducción A pesar de haberlo introducido en el tema 2, vamos a hacer un nuevo repaso de los conceptos en los que se basa AJAX. AJAX es una tecnología que se utiliza en las aplicaciones Web (en todas, no solo en J2EE), que ayuda a que las aplicaciones sean más rápidas, sencillas y "amigables" para el usuario. AJAX funciona en todos los navegadores "modernos", es decir, en versiones con pocos años de antigüedad. Esto es debido a que AJAX está basado en estándares que son implementados y "entendidos" por gran parte de los navegadores. En concreto, AJAX está basado en JavaScript, XML, HTML y CSS. Como decíamos en el tema 2, sin AJAX, si un usuario quiere hacer una petición al servidor, lo tiene que hacer mediante una petición GET o POST que implica que la página tiene que recargarse completamente. Usando AJAX, conseguimos hacer peticiones "en background" usando JavaScript y, al recibir la respuesta, tratarla sin necesidad de recargar la página. Esta comunicación con el servidor se hace mediante el objeto JavaScript XMLHttpRequest. AJAX no es mucho más que esto, en el resto de la lección vamos a ver los conceptos básicos y un ejemplo de uso. 4.2 Principales elementos de AJAX Como decíamos antes, la clave de AJAX es el objeto JavaScript XMLHttpRequest. Los distintos navegadores existentes (Internet Explorer, Mozilla FireFox, Opera, etc.) crean este objeto de diferentes formas, pero una vez creado el uso es el mismo. No olvidemos que AJAX es JavaScript, de modo que se ejecuta en el cliente (navegador). Para crear el objeto, hay que tener en cuenta al escribir nuestro código que puede ejecutarse en diferentes navegadores, de modo que la mejor forma de crearlo es mediante el uso de excepciones. El siguiente código es el que se suele usar: try { // Firefox, Opera 8.0+, Safari xmlhttp=new XMLHttpRequest(); 28

29 } catch (e) { // Internet Explorer 6.0 o superiores try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { // Internet Explorer 5.5 o superiores try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("your browser does not support AJAX!"); return false; } } } Con lo anterior ya tendríamos creado el objeto para enviar peticiones y gestionarlas con AJAX. Aún no estamos preparados para enviar la petición al servidor, antes tenemos que ver las tres principales propiedades del objeto XMLHttpRequest. - La propiedad onreadystatechange guardará la función que procesará la respuesta del servidor. - La propiedad readystate tendrá el valor del estado de la respuesta (response) del servidor. Los posibles valores de esta propiedad los vemos en la siguiente tabla: Estado Descripción 0 La petición no está inicializada 1 La petición ha sido preparada 2 La petición ha sido enviada 3 La petición está en proceso 4 La petición ha sido completada - La propiedad responsetext contendrá la respuesta del servidor. Con esto ya tendremos lo necesario para tratar la respuesta, pero nos falta lo necesario para enviar la petición. Para ello usamos los métodos "open" y "send" del objeto XMLHttpRequest. En el siguiente apartado vemos un ejemplo de código para asimilar los conceptos vistos hasta el 29

30 momento. 4.3 Ejemplo de uso de AJAX Una vez vistas las piezas clave de AJAX, llega el momento de ponerlas en práctica, para ello, vamos a crear una aplicación web muy simple con un "servlet" y con una "jsp". La idea de esta aplicación es que la "jsp" tendrá un campo para insertar un texto, en concreto una provincia y, cuando escribamos sobre ella, mediante AJAX se enviará una petición al servidor para que nos devuelva un texto con las provincias que empiecen igual que el texto que estamos introduciendo. El típico ejemplo para sugerir al usuario opciones. Esto es muy sencillo, solamente tenemos que crear una aplicación Web tal y como hemos visto en este tema (llamadla "cursoajax" y desplegadla en ese contexto para que el código que os pongo abajo os funcione a la primera). Luego cread una "jsp" directamente sobre "WebContent" llamada "index.jsp" y en el fichero dejad este contenido: page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> <!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 "> <title>mi aplicación AJAX</title> <script type="text/javascript"> function mostrarsugerencia(dato) { if (dato=='') document.getelementbyid("sugerencia").innerhtml=''; else { var xmlhttp; try { // Firefox, Opera 8.0+, Safari xmlhttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("your browser does not support AJAX!"); return false; } 30

31 } } xmlhttp.onreadystatechange=function() { if(xmlhttp.readystate==4){ document.getelementbyid("sugerencia").innerhtml=xmlhttp.responsetext; } } xmlhttp.open("get","/cursoajax/miservlet?dato=" + dato,true); xmlhttp.send(null); } } </script> </head> <body> <form> Provincia: <input type="text" onkeyup="mostrarsugerencia(this.value)" id="provincia"> Sugerencia: <span id="sugerencia"><!-- aqui se meterá la respuesta del servidor --></span> </form> </body> </html> Luego cread un "Servlet" y llamadlo "MiServlet" en un paquete llamado "mipaquete". En este "Servlet" meted el siguiente código: package mipaquete; import java.io.ioexception; import java.io.printwriter; import java.util.hashmap; import java.util.map; import javax.servlet.servletexception; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; /** * Servlet implementation class for Servlet: MiServlet * */ public class MiServlet extends javax.servlet.http.httpservlet implements javax.servlet.servlet { static final long serialversionuid = 1L; static String[] provincias = {"Albacete","Madrid","Barcelona"}; /* (non-java-doc) 31

32 javax.servlet.http.httpservlet#httpservlet() */ public MiServlet() { super(); } /* (non-java-doc) javax.servlet.http.httpservlet#doget(httpservletrequest request, HttpServletResponse response) */ protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String sugerencia = ""; //aquí obtenemos lo que ha escrito hasta ahora el usuario String datoinsertado = request.getparameter("dato"); for (int i = 0; i < provincias.length; i++) { if (provincias[i].startswith(datoinsertado)) sugerencia += provincias[i]; } if (sugerencia.length()==0) sugerencia="no conozco ninguna provincia que empiece asi. OJO con las mayusculas"; response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.print(sugerencia); out.flush(); out.close(); } } Y una vez echo esto, meted el mapeo para el servlet en el fichero "web.xml". Este fichero debería quedar así: <?xml version="1.0" encoding="utf-8"?> <web-app id="webapp_id" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee <display-name>aplicacion ajax</display-name> <servlet> <description></description> <display-name>miservlet</display-name> <servlet-name>miservlet</servlet-name> 32

33 <servlet-class>mipaquete.miservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>miservlet</servlet-name> <url-pattern>/miservlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> Una vez hecho esto, si arrancamos el servidor y escribimos en un navegador la url se cargaría la página. Y si probamos a escribir en el cuadro de texto, tras cada pulsación se nos mostrará una sugerencia. Mi memoria no alcanzaba a recordar más provincias que "Albacete", "Madrid" y "Barcelona", y tened cuidado con las mayúsculas!!! Probad y mejorad el código! Bueno, pues con esto ya debería estar funcionando la aplicación. Ahora vamos a explicar un poco su funcionamiento (id mirando el código mientras vais leyendo las siguientes líneas): Gracias al evento "onkeyup", se llama la función javascript "mostrarsugerencia", pasándole como parámetro el valor introducido hasta el momento en el campo "provincia". La función javascript "mostrarsugerencia" obtiene el objeto apropiado según el navegador para usar AJAX, y después define la función que se ejecutará cuando haya cambios en el estado de la petición al servidor. Esta función simplemente escribe la respuesta recibida en el "span" que se definió a tal efecto. Tras la definición, se hace la petición a nuestro servlet pasándole el texto introducido hasta el momento. Cuando el "servlet" recibe la petición, calcula la sugerencia y la devuelve. Cuando es devuelta, el estado de la petición pasa a ser 4 ("request completada") con lo que se ejecuta la función javascript que hemos definido, actualizando así el valor contenido en el "span". Nos hemos comunicado con el servidor y actualizado nuestra página sin recargar!!!! Sencillo, no?. Y para que veáis las ventajas de AJAX, imaginad que lo tuvierais que hacer sin AJAX, y además pensad que la página es muchísimo más compleja y pesada que nuestra simple "index.jsp". 33

34 4.4 Otras posibilidades Ya hemos visto un ejemplito de uso básico suficiente para entender la utilidad de AJAX. Pero por supuesto existen muchos más aspectos interesantes y útiles en AJAX. Un enlace muy interesante y bastante didáctico para aprender más aspectos de AJAX es Supongo que ya estaréis enamorados de AJAX pero antes deberíais saber que también existen frameworks para usar AJAX que nos proporcionan más funcionalidades, simplifican nuestros desarrollos, mejoran la calidad, aumentan el rendimiento, proporcionan integración con otros entornos, etc. A continuación os pongo un par de ellos que he usado y son bastante útiles. - AjaxAnyWhere (http://ajaxanywhere.sourceforge.net) - DWR (http://getahead.org/dwr/) Y, por si no tenéis suficiente, aquí tenéis una página con un listado muy amplio 34

35 5 ANEXO 5.1 INSTALACIÓN DE TOMCAT Vamos a proceder a realizar la instalación del contenedor de Servlets Tomcat 6. Esta aplicación se puede descargar desde la siguiente dirección Podemos encontrarnos con la versión ejecutable o ZIP. La primera realizará la instalación mediante un Wizard y, además, configura un servicio de Windows para poder administra el servidor Apache. Con la versión ZIP no se configura ningún servicio de Windows y seremos nosotros los encargados de parametrizar adecuadamente la aplicación. A continuación vamos a mostrar una guía para instalar la versión ejecutable Una vez tengamos el instalable comenzaremos la instalación haciendo doble clic sobre el ejecutable. Lo primero que debemos hacer es aceptar la licencia que se nos presenta (I Agree): Seleccionamos el tipo de instalación del servidor que se va a realizar, ampliamos la normal para que incluya también los ejemplos (examples): 35

36 Decidimos el directorio en que va a ser instalado el programa: Se solicita los parámetros de inicialización del servidor, donde tenemos que decidir el puerto donde va a escuchar el servidor (8080 por defecto, pero se puede seleccionar cualquier otro que este libre) y el usuario y password que se utilizará para la aplicación de administración del servidor. 36

37 Ahora nos solicita que le indiquemos la ruta donde tenemos instalada la Java Runtime (JRE) e iniciamos la instalación pulsando el botón de Install. Completada la instalación pinchamos en Finish. 37

38 Se ha finalizado con la instalación y comprobamos el acceso en el menú de inicio que se ha creado para administrar el servidor Tomcat. Pinchando en Configure Tomcat. Nos aparece una ventana para poder administrar el servidor Tomcat que se ha instalado como un servicio de Windows. Desde esta ventana podemos configurar el servicio de Windows para que se arranque de forma manual, automática o deshabilitarlo. Si pinchamos en Start arrancamos el servidor de Tomcat. 38

39 Podemos comprobar que se ha arrancado correctamente y podemos tener acceso a la herramienta de administración, a la documentación y a los ejemplos conectándonos a la dirección con nuestro navegador (IE, Mozilla, etc). 39

40 Pasamos a continuación a explicar como realizar la instalación de la versión ZIP del instalable del Tomcat. Descomprimimos el fichero en el directorio donde deseamos tener la aplicación. Y podemos ver las carpetas que componen el instalable. Abrimos una ventana de comandos, nos situamos en el directorio bin e intentamos lanzar el tomcat con la llamada a startup. Vemos que nos da un error y nos pide que se definan las variables de entorno JAVA_HOME O JRE_HOME. Configuramos la variable JAVA_HOME para que apunte al directorio donde 40

41 tengamos instalado la JDK 1.5. Volemos a llamar a startup para que arranque el Tomcat y si todo es correcto, abre otra ventana de comandos donde tendremos el log del Tomcat. Al igual que para la versión ejecutable, para comprobar que se ha arrancado correctamente nos conectamos a la dirección con nuestro navegador (IE, Mozilla, etc). 41

42 5.2 INTEGRACIÓN DE TOMCAT Y ECLIPSE Ya tenemos instalado en nuestro ordenador el Tomcat y funciona correctamente. Vamos a ver como se integra dentro de nuestro entorno de desarrollo Eclipse. Arrancamos el Eclipse y nos vamos a la opción de menú Window -> Preferences Dentro de la ventana de Preferences, seleccionamos la opción Server -> Installed Runtimes y dentro de esta ventana es donde se gestionan los servidores de aplicaciones instalados. Pinchamos en el botón Add para añadir y configurar nuestro servidor Tomcat: 42

43 Desplegamos la carpeta de Apache y seleccionamos la versión de nuestro Apache Tomcat : Pinchando en el botón de Browse seleccionamos el directorio donde hayamos instalado nuestra versión del Tomcat y del desplegable debemos seleccionar la JRE/JDK con la que queremos que se despliegue el servidor: 43

44 Pinchando en Finish terminamos la instalación y configuración del Tomcat dentro del Eclipse y podemos ver como se ha añadido dentro de los servidores instalados: Volviendo al Eclipse, en la vista Servers podemos ver como aparece el servidor Tomcat que hemos configurado. Pinchando con el botón de la derecha aparece el menú emergente que nos permitirá administrar dicho servidor: 44

45 Si pinchamos en la opción Start iniciamos dicho servidor y podemos ver el log que devuelve dicho servidor para notificarnos que está arrancado correctamente y en que puerto está escuchando (8080): 45

46 5.3 IMPORTACIÓN, CONFIGURACIÓN, FUNCIONAMIENTO APP STRUTS A continuación vamos a detallar los pasos que hay que llevar a cabo para importar, configurar y poner en funcionamiento la primera aplicación web con Struts dentro de nuestro entorno de desarrollo Eclipse. Lo primero es descargar dicho proyecto de aquí. Descomprimir dicho fichero en un directorio temporal. Iniciamos el Eclipse y pinchando con el botón de la derecha sobre la vista de Project Explorer nos vamos a la opción Import > Import: En la ventana de Import, desplegamos la carpeta General y pinchamos sobre la opción Existing Projects into Workspace : 46

47 En esta ventana tenemos que buscar (Browse) el directorio donde hayamos descomprimido el fichero struts-registration.rar. Una vez seleccionado nos aparece el proyecto struts-registration, lo marcamos con el check y pinchamos el botón de Finish: Una vez importado el proyecto nos aparece en la vista de Project Explorer. Como en mi caso es probable que aparezca marcado con la cruz roja de tener problemas con la compilación: 47

48 Para solucionar el/los problemas que existan, pinchamos con el botón de la derecha del ratón sobre el proyecto y pinchamos en la opción de Properties, nos aparece la ventana de propiedades del proyecto donde se configuran diferentes opciones siendo las principales la dependencia de librerías (Java Build Path), otros proyectos de los que dependa (Project Referentes), el context root (Web Content Settings) o el servidor donde se va a desplegar el proyecto: Podemos ver que en el Build Path nos indica con un aviso que la librería de la JRE no la encuentra. Lógico! Es poco probable que vosotros y yo tengamos configurado en el Eclipse las versiones de la 48

49 JDK/JRE idénticas y con el mismo nombre. Para arreglar dicho problema pinchamos sobre dicha librería y en el botón de edit : Seleccionamos la JRE que tengamos en nuestro Eclipse y finalizamos y cerramos la ventana de propiedades, lo que provoca que se recompile el proyecto y desaparezcan los problemas (ya no tenemos la marca roja). También podrían aparecer problemas relacionados con las versiones del Tomcat que se solucionan de idéntica forma. Si echamos un vistazo a la aplicación web que habeís importado es una aplicación con Struts muy sencilla que prácticamente consiste en un formulario para registrarte donde se pide el nombre, dirección, edad y teléfono, siendo campos obligatorios el nombre y la edad. Si todo es correcto y la edad introducida es mayor de 18 años te notifica con que el registro ha sido correcto sino te informa que sólo pueden registrarse mayores de 18 años. Veamos como desplegar dicha aplicación con Eclipse en el Tomcat que tenemos instalado. Tenemos dos opciones para levantar el Tomcat: en modo ejecución y en modo debug, que no necesitan más explicación para toda persona que haya programado alguna vez con un entorno de desarrollo. Arrancamos en modo ejecución normal: 49

50 Nos indica que seleccionemos el servidor Tomcat donde se va a desplegar el proyecto, seleccionamos el Tomcat 6 y marcamos que siempre use este servidor: Pinchamos en Next y nos muestra la pantalla con las aplicaciones web disponibles en el Eclipse para que pasemos al lado de la derecha aquellos que queramos que se desplieguen en el servidor (debe aparecer el struts-registration): 50

51 Pulsamos Finish, se arranca el servidor Tomcat y nos inicia el navegador web configurado (en la imagen se ha iniciado el navegador interno que incluye el Eclipse): 51

52 Se propone al alumno que pruebe la aplicación web estudiando como se lleva a cabo con Struts la validación del formulario, la configuración de las acciones en el struts-action.xml, la clase que implementa la acción de registrar (RegistrarAction) o la internacionalización de la aplicación (español, inglés). Podeís hacer modificaciones sobre el código y realizar traceo del código mediante breakpoints (modo debug). La segunda aplicación que se va a estudiar es con el framework JSF y es un ejemplo que viene con la distribución de J2EE de Sun, para descargarla pincha aquí. Consiste en un formulario que te pide que adivines el número que está pensando Duke (un valor entre 0 y 10). Es una aplicación muy sencilla y que sirve para ver como configurar y relacionar formularios con backing beans en JSF, como se configuran los JSP con los componentes UI de JSF y como se define la navegación. Los pasos que se tienen que realizar para importar, compilar y desplegar la aplicación son similares a los llevados a cabo con el ejemplo de Struts. La única diferencia esta en que esta aplicación se recomienda que se despliegue en el servidor Tomcat 5.5 que los alumnos ya tendrían que tener instalado e integrado en Eclipse. La aplicación también funciona sobre Tomcat 4.1 pero se obtienen trazas de error continua por temas de XML. Al igual que con el ejemplo de Struts, probar la aplicación, tracearla, modificarla, etc... con el objetivo de que el alumno sea capaz de controlar dicho tipo de aplicaciones y frameworks pues serán la base para los ejercicios que se proponen en el tema y éste tema se considera uno de los más importantes de cara a la preparación para el mundo laboral. Como último ejemplo, vamos a ver que pasos hay que llevar a cabo para poder importar en Eclipse un proyecto que no se haya realizado con dicho IDE, por ejemplo, porque lo hayamos bajado de Internet o venga en algún tutorial que estemos leyendo. Para este caso, la aplicación que tenemos te la puedes descargar de aquí. 52

53 Una vez que descomprimas el fichero podrás comprobar que en la estructura de subdirectorios encontramos lo siguiente: build: no tiene contenido. dist/lib: archivo banking.war. lib: librerías o archivos.jar. META-INF: sin contenido. src: dentro de las subcarpetas correspondientes (paquetes) se encuentran los archivos.java. web: con la estructura obligatoria de una aplicación web Java, encontramos dentro imágenes, JSPs, web.xml y fichero de estilos. Vamos a ver como encajamos estas piezas dentro de un proyecto de Eclipse. Lo primero es crear un nuevo proyecto web (Dynamic Web Project) en Eclipse con el nombre de banking, para esto podemos seguir el ejemplo de HolaMundo que ya hemos visto en el tema 4. Una vez creado el proyecto banking, nos vamos a ir a una ventana del explorador de Windows y vamos a ir copiando desde las carpetas anteriores hasta la ruta donde se encuentra nuestro proyecto banking en el workspace del Eclipse. En la siguiente imagen podemos ver que la intención es copiar desde el explorador de la izquierda (donde tenemos descomprimido el banking-dev.zip) en el explorador de la derecha (donde se encuentra nuestro proyecto banking creado con Eclipse). Tenemos que copiar el contenido de las siguientes carpetas: del src (zip) al src (eclipse); del web (zip) al WebContent (Eclipse), pregunta si sobreescribe y confirmamos la sobreescritura del contenido; del lib (zip) al WebContent/WEB-INF/lib. Una vez que lo tenemos todo copiado, volvemos a Eclipse y refrescamos el proyecto (F5), debería recompilarse el proyecto con los nuevos fuentes que hemos copiado desde el explorador de Windows. Y ahora ya podemos desplegar la aplicación banking en el Tomcat mediante el run on server. 53

JSP Básico. Índice. 2 Traducción de los JSP a servlets...2. 6 Acciones...8. 1 Introducción a JSP... 2

JSP Básico. Índice. 2 Traducción de los JSP a servlets...2. 6 Acciones...8. 1 Introducción a JSP... 2 Índice 1 Introducción a JSP... 2 2 Traducción de los JSP a servlets...2 3 Elementos de JSP...3 4 Inserción de código en páginas JSP... 4 4.1 Expresiones...4 4.2 Scriptlets...4 4.3 Declaraciones... 4 4.4

Más detalles

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Servlets Unidad: 4 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Introducción CGI Servlets: concepto, caracteristicas Servlets Vs. CGI Ciclo

Más detalles

Introducción a los servlets

Introducción a los servlets Introducción a los servlets (Febrero de 2005) Introducción En breve: un servlet es un programa ejecutado en el servidor (a diferencia de los applets que se ejecutan en el cliente). Es un mecanismo para

Más detalles

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet JSP Java Server Pages cesaracebal.com acebal@uniovi.es Qué es JSP? Una tecnología para crear páginas Web dinámicas Contiene código HTML normal junto elementos especiales de JSP Están construidas sobre

Más detalles

Java 2 Enterprise Edition

Java 2 Enterprise Edition 12. J2EE Java 2 Enterprise Edition 316 12. J2EE Java 2 Enterprise Edition define el estándar para el desarrollo de aplicaciones distribuidas en arquitecturas cliente/servidor. Construido sobre la plataforma

Más detalles

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax Descripción: Por nuestra experiencia de más de 11 años enseñando Java y pioneros en este tipo de Diplomados creamos este entrenamiento. Nuestro

Más detalles

Requisitos. Universidad ORT Arquitectura de Software

Requisitos. Universidad ORT Arquitectura de Software Requisitos Java Development Kit (JDK) 1.5 o superior NetBeans IDE 6.5 o superior JBoss Application Server 4.2.x o 5.x.x Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK 1

Más detalles

El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto

El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto 2 Marco teórico 2.1 Internet 2.1.1 Breve historia El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto realizado por la Agencia de Investigación Avanzados de Defensa (DARPA)

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

4. DESARROLLO WEB CON JAVA JSP & SERVLETS 4. DESARROLLO WEB CON JAVA JSP & SERVLETS La programación de aplicaciones web sobre la especificación de JSP y Servlets es un subconjunto de la plataforma Java EE. Existen muchas formas de estructurar

Más detalles

DESARROLLO DE APLICACIONES WEB Introducción a Java Server Faces

DESARROLLO DE APLICACIONES WEB Introducción a Java Server Faces DESARROLLO DE APLICACIONES WEB Introducción a Java Server Faces 1. Objetivo: Introducir los conceptos relacionados con la construcción de aplicaciones Web Java basadas en Java Server Faces 2.x. 2. Prerrequisitos:

Más detalles

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA DIPLOMATURA DESARROLLO DE APLICACIONES JAVA Contenidos MÓDULO UNO: Características del Lenguaje. OOP Reconocer las características del lenguaje Java y sus componentes. Distinguir la similitudes y diferencias

Más detalles

CAPÍTULO 14. DESARROLLO

CAPÍTULO 14. DESARROLLO CAPÍTULO 14. DESARROLLO DE SISTEMAS ESPECÍFICOS 1. Introducción En los últimos años han aparecido multitud de nuevas plataformas para desarrollar aplicaciones y ponerlas en explotación. En este capítulos

Más detalles

PROGRAMACIÓN VISUAL ANALISTA PROGRAMADOR UNIVERSITARIO FAC DE INGENIERIA - PLAN 2008 AÑO 2010

PROGRAMACIÓN VISUAL ANALISTA PROGRAMADOR UNIVERSITARIO FAC DE INGENIERIA - PLAN 2008 AÑO 2010 ARQUITECTURA J2EE Principios de Funcionamiento de Aplicaciones WEB El HypertText Markup Language (HTML) se concibió como una herramienta fundamental de Internet para la creación de páginas WEB. El concepto

Más detalles

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12. Unidad 7 Servlets 7.1 Marco teórico Lo que permite que ordenadores remotos con procesadores y sistemas operativos diferentes se entiendan y en definitiva que Internet funcione como lo hace en la actualidad,

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA Cursos CIÓN DE APLICACIONES CON JAVA OBJETIVOS Los cursos ofrecen al alumno fundamentos muy sólidos en la Plataformas de desarrollo Java, no solo en aspectos concretos (lenguaje java, paquetes disponibles,

Más detalles

FUNCIONAMIENTO: FUNCIONALIDAD

FUNCIONAMIENTO: FUNCIONALIDAD STRUTS Qué Es? Es un framework que implementa el patrón de arquitectura MVC en Java. El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define la organización independiente del Model

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu.

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu. 1 NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets 2 Agenda Protocolo HTTP Formas HTML Servlets 3 Protocolo HTTP Hypertext Transfer Protocol (HTTP) - 1990 Versión 1.1 Mecanismo

Más detalles

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages) 12/13 Servlets y JSPs (Java Server Pages) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción Servlets Introducción Clases e interfaces del

Más detalles

Lección 1 Introducción a Struts. www.globalmentoring.com.mx uacosta@globalmentoring.com.mx

Lección 1 Introducción a Struts. www.globalmentoring.com.mx uacosta@globalmentoring.com.mx Lección 1 Introducción a Struts www.globalmentoring.com.mx uacosta@globalmentoring.com.mx Lección 1. Introducción a Struts Lección 1. Introducción a Struts Un framework es un conjunto de clases que nos

Más detalles

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Elección libre Unidad académica: Desarrollo de Sistemas de Información basado en Web I Ubicación: Octavo Semestre.

Más detalles

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Ficha Técnica Categoría Programación Contenido del Pack - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Sinopsis Java fue desarrollado por la compañía Sun Microsystems como una tecnología capaz

Más detalles

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

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA Jaime Fernández ndez Mayo 2006 Índice Java Aplicaciones web Servlets JSP Servidores de aplicaciones IDE`s Ejemplo Historia Java Lenguaje orientado

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado Centro de Capacitación en Tecnologías de la Información Desarrollo de Objetivo Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard

Más detalles

ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"

ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del Eclipse IDE for Java EE Developers y el servidor Apache Tomcat Unidad 6: Servlets Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat" "Eclipse IDE for Java EE Developers" Para desarrollar aplicaciones que se ejecuten en un servidor web

Más detalles

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Vivimos en un mundo globalizado, donde la eficiencia y productividad de las empresas es un factor crucial para

Más detalles

Java EE JavaServer Pages (JSP)

Java EE JavaServer Pages (JSP) Java EE JavaServer Pages (JSP) Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs septiembre 2011 FJRP, FMBR 2008-2011 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

DESARROLLO DE APLICACIONES WEB Introducción a Struts Framework

DESARROLLO DE APLICACIONES WEB Introducción a Struts Framework DESARROLLO DE APLICACIONES WEB Introducción a Struts Framework 1. Objetivo: Introducir los conceptos relacionados con la construcción de aplicaciones Web Java basadas en el Framework Web MVC2 Struts. 2.

Más detalles

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

Más detalles

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Nicolás Troncoso Carrère ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Valparaíso, 2006 1 2 3 Porqué paginas dinamicas? Confirmacion de suscripciones. Contenido generado

Más detalles

Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m.

Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m. JSP (I) Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m.es/berto (*) Agradecimientos a Lourdes Tajes en cuyo material docente

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ]

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Agosto 09 Un primer JSP Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / j a v a. p h p ] Un Primer JSP Guía rápida Este documento te guiará por los primeros pasos para desarrollar

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con Centro de Capacitación en Tecnologías de la Información Objetivo El objetivo del curso es brindar a los asistentes los conceptos y el uso de la tecnología de componentes J2EE. Se presentan las técnicas

Más detalles

Aplicaciones web construidas a base de componentes:

Aplicaciones web construidas a base de componentes: Java EE Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative Commons

Más detalles

[CASI v.0109] Pág. 1

[CASI v.0109] Pág. 1 I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : COMPUTACIÓN E INFORMATICA : Ingeniería de Software : Lenguaje de Programación II : F-INF110 : Cuarto Requisitos : T-INF108 (Lenguaje de Programación

Más detalles

JSP(JAVA SERVER PAGES)

JSP(JAVA SERVER PAGES) JSP(JAVA SERVER PAGES) Introducción En la actualidad, la mayoría de los sitios Web quieren mostrar contenido dinámico basado en el usuario y en la sesión. La mayor parte del contenido, tal como imágenes,

Más detalles

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online)

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Duración: 300 horas Precio: 200 * Modalidad:

Más detalles

Técnico Superior en Programación con Java SE Standard Edition

Técnico Superior en Programación con Java SE Standard Edition Código: M087_04 Técnico Superior en Programación con Java SE Standard Edition Modalidad: Distancia Duración: 120 horas Objetivos: Este pack de materiales formativos proporcionará al alumnado la base que

Más detalles

Introducción a Javato

Introducción a Javato Introducción a Javato Fº. Javier Pereñiguez Steria Iberica 20/02/2008 Índice Introducción Arquitectura Ejemplo arquitectura Plataforma Desarrollo Ejemplo de entorno de desarrollo Vías futuras Casos de

Más detalles

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Curso Desarrollo Java Web con JSP, Servlets y el MVC Curso Desarrollo Java Web con JSP, Servlets y el MVC Objetivos: En este curso práctico aprenderás a desarrollar páginas JSP bajo el modelo MVC. Entenderás con desarrollar aplicaciones Web en Java bajo

Más detalles

Curso: Programación con JAVA SE Estándar Edition.

Curso: Programación con JAVA SE Estándar Edition. Curso: Programación con JAVA SE Estándar Edition. Código: 1062 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 150 horas

Más detalles

Capítulo II. Arquitectura del Software

Capítulo II. Arquitectura del Software Capítulo II. Arquitectura del Software Después de un cuidadoso análisis de los objetivos del proyecto, se determinó que la mejor manera de estructurar el sistema era haciendo uso del muy famoso patrón

Más detalles

Temario Detallado Curso Java Verano Online

Temario Detallado Curso Java Verano Online 1 Módulo I - Java desde cero: Conoce Java desde los fundamentos. Aprenderás la sintaxis básica, tipos de Datos y Sentencias de Control. Lección 1 - Características Básicas del Lenguaje Java Introducción

Más detalles

envía al browser. El browser despliega el archivo.

envía al browser. El browser despliega el archivo. SERVLETS Dr. Raúl Perez Páginas web estáticas Como se despliega una página web en un browser Normalmente la página se crea usando HTML y se almacena como un archivo en el servidor de web. El usuario escribe

Más detalles

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE PRÓLOGO... 13 APECTOS BÁSICOS DE JAVA... 15 1.1. LA MÁQUINA VIRTUAL JAVA... 15 1.2. EDICIONES JAVA... 16 1.3. ESTRUCTURA DE UN PROGRAMA JAVA... 16 1.4. EL MÉTODO

Más detalles

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Autor: José Vicente Núñez Zuleta (jose@eud.com, josevnz@yahoo.com) Puntos a tratar Qué es JDBC? Arquitectura de un

Más detalles

JSP JDBC SALVADORES OLAIZOLA,

JSP JDBC SALVADORES OLAIZOLA, JAVA & J2EE: Curso Básico Diseño de Aplicaciones Web 2004-2005 http://laurel.datsi.fi.upm.es/~ssoo/daw/ Java Servlets JSP JDBC EJB SALVADORES OLAIZOLA, Manuel msalvadores@inicia.es Licencia Copyright (c)

Más detalles

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación Sistemas de Información Grado de Informática Dpto. de Informática e Ingeniería de Sistemas, Universidad

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 1 Los Enterprise Java Beans (EJB) es código Java del lado del Servidor. Normalmente tienen la lógica de negocio de nuestra aplicación, y por lo tanto cubren el rol de la capa de servicio de nuestras aplicaciones

Más detalles

II Curso Online JAVA-J2EE

II Curso Online JAVA-J2EE II Curso Online JAVA-J2EE TEMA 3 Introducción a J2EE Autor: PCYTA / Centro de Excelencia de Software Libre de Castilla-La Mancha Versión: 1.0 Fecha: Revisado 13-02-2008 23:56 Licencia: CC-by-sa 2.5 0 Licencia

Más detalles

Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB

Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB Desarrollo de aplicaciones web con Java y XML Experiencias en el CTI@UIB Universidad idad de las Islas Baleares Centro de Tecnologías de la Información n (CTI@UIB( CTI@UIB) Daniel López Janáriz Objetivos

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 14. Java Server Pages (JSP) Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Ejemplificar la manera de desarrollar aplicaciones i Java EE usando páginas JSP. Describir

Más detalles

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012 TFC J2EE Aplicación Web para la gestión de facturación de una empresa de cerrajería Sara Gutiérrez Melero ITIG Junio de 2012 Consultor: Jose Juan Rodriguez Índice 1. Introducción Objetivos Planificación

Más detalles

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online)

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP

Más detalles

UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR

UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR Herramienta flexible para la creación y gestión de cuestionarios Web adaptativos: Aplicación al diseño de encuestas de satisfacción sobre servicios

Más detalles

Qué ofrece Autentia?

Qué ofrece Autentia? Qué ofrece Autentia? Somos su empresa de arquitectura y soporte a desarrollo Java/.Net En cualquier empresa mediana o grande donde exista un departamento de desarrollo informático encontramos un difícil

Más detalles

Capítulo 2. Marco Teórico

Capítulo 2. Marco Teórico Capítulo 2. Marco Teórico 2.1. Frameworks para Aplicaciones Web en Java Con el crecimiento exponencial de Internet en los últimos años, las aplicaciones Web se han convertido en una parte básica y común

Más detalles

J2EE Java 2 Enterprise Edition

J2EE Java 2 Enterprise Edition J2EE Java 2 Enterprise Edition Es el framework oficial de Java para la construcción de aplicaciones empresariales Es una tecnología basada en componentes Ofrece un modelo para el desarrollo de aplicaciones

Más detalles

FUJITSU Java Development Framework

FUJITSU Java Development Framework FUJITSU Java Development Framework DOCUMENT DETAILS Created: 10.12.2005 Version: 2.0 Author: FUJITSU ESPAÑA SERVICES S.A. 1. INTRODUCCIÓN 1.1 Arquitectura conceptos básicos La arquitectura planteada por

Más detalles

Configuración servidor Tomcat

Configuración servidor Tomcat Apuntes de J2EE Configuración servidor Tomcat Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta

Más detalles

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

USANDO SERVLETS EN UN SERVIDOR WEB RESIN USANDO SERVLETS EN UN SERVIDOR WEB RESIN Servidor Web Resin Resin es un servidor web que permite no solo despachar un página web, sino aplicaciones web construidos bajo la arquitectura J2EE, así como el

Más detalles

Taller de Sistemas de Información 2

Taller de Sistemas de Información 2 Taller de Sistemas de Información 2 JSF - JavaServer Faces Introducción Evolución de los frameworks Web en Java Servlets / JavaServer Pages Apache Struts Otros frameworks Tapestry Echo Web Work Spring

Más detalles

Tema 1: Introducción a las Tecnologías Java

Tema 1: Introducción a las Tecnologías Java Tema 1: Introducción a las Tecnologías Java Índice Características de las aplicaciones empresariales Tecnologías Java Alternativas a las tecnologías Java XML Material de clase Características de las aplicaciones

Más detalles

Curso de Spring Framework

Curso de Spring Framework Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su

Más detalles

RUEDA TORRES DULCE CAROLINA 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT

RUEDA TORRES DULCE CAROLINA 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT JavaServer Faces (JSF) es una interfaz de usuario (UI) para las aplicaciones web Java. Está diseñado para aliviar considerablemente la carga de la

Más detalles

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente Aplicaciones web con JSP Arquitectura J2EE para aplicaciones web Aplicación Applet HTML Cliente Servidor web JSP Servlet Web EJB Java Beans Lógica Negocio Otras BDs, ERPs etc BD Oracle Datos Cliente Servidor(es)

Más detalles

Elección de tecnología para la capa de presentación de SOA. Huibert Aalbers Senior Certified Software IT Architect

Elección de tecnología para la capa de presentación de SOA. Huibert Aalbers Senior Certified Software IT Architect Elección de tecnología para la capa de presentación de SOA Huibert Aalbers Senior Certified Software IT Architect IT Insight podcast Este podcast pertenece a la serie IT Insight Pueden suscribirse al podcast

Más detalles

Programación y Arquitectura

Programación y Arquitectura Programación y Arquitectura Proyecto Santos es una aplicación web que usa múltiples APIs i Java EE 7: La tecnología JavaServer Faces ii, incluyendo Ajax Contextos y la inyección de dependencias para la

Más detalles

Java Web Server Tabla de Contenidos

Java Web Server Tabla de Contenidos Java Web Server Tabla de Contenidos 3. Java Web Server...2 3.1 Conceptos generales... 2 3.2 Elección de servidor Web con capacidad para servlets...3 3.3 Instalación de Tomcat 5... 4 3.3.1 Comienza la instalación...5

Más detalles

Model View Controller Architecture. Dra. Marcela Capobianco

Model View Controller Architecture. Dra. Marcela Capobianco Diseño y Desarrollo de Software Model View Controller Architecture Dra. Marcela Capobianco 1 Qué es MVC? Model View Controller (MVC) es un patrón agregado que separa los datos de una aplicación, la interfaz

Más detalles

4. CODIFICACIÓN. Previo a la codificación además de instalar las respectivas herramientas es. importante tenerlas bien configuradas.

4. CODIFICACIÓN. Previo a la codificación además de instalar las respectivas herramientas es. importante tenerlas bien configuradas. 4. CODIFICACIÓN 4.1 Instalación Previo a la codificación además de instalar las respectivas herramientas es importante tenerlas bien configuradas. Instalamos Lenguaje de programación Java TM 2 Platform

Más detalles

JSF. Aplicaciones Distribuidas

JSF. Aplicaciones Distribuidas JSF Aplicaciones Distribuidas Contenidos Introducción Arquitectura Componentes UI Renders Eventos Internacionalización Conversores Navegación Ciclo de Vida Fichero configuración Validadores Backing beans

Más detalles

J2EE: Universal CMIS Client. Miguel Segura Anaya ETIG / ETIS. Jose Juan Rodriguez

J2EE: Universal CMIS Client. Miguel Segura Anaya ETIG / ETIS. Jose Juan Rodriguez J2EE: Universal CMIS Client Miguel Segura Anaya ETIG / ETIS Jose Juan Rodriguez 14 de Enero de 2013 0 Agradecimientos Este proyecto, está dedicado a la luz de mi vida, Virginia. Sin su apoyo este proyecto

Más detalles

Implementando nuestro primer servlet

Implementando nuestro primer servlet Servlets (II) * Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario http://www.it.uc3m.es/berto (*) Agradecimientos a Lourdes Tajes en cuyo material docente se basa parcialmente esta presentación

Más detalles

ARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial

ARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial Título ARQUITECTUA DE M2M Proyecto Monkey to Monkey ( M 2 M ) Equipo Proyectos Informáticos Versión 1.0 Código PLAN_M2M_2012_04_01 Fecha 19/04/2012 Autores MIGUEL ÁLVAREZ Y CLARA HERRERO Estado Documento

Más detalles

Framework para el desarrollo ágil de aplicaciones

Framework para el desarrollo ágil de aplicaciones Framework para el desarrollo ágil de aplicaciones 1 Índice INTRODUCCIÓN... 3 QUÉ ES UN FRAMEWORK?... 3 VENTAJAS DE UTILIZAR UN FRAMEWORK... 4 DESVENTAJAS DE UTILIZAR UN FRAMEWORK... 5 CARACTERÍSTICAS DE

Más detalles

Curso Java Curso Online Analista Programador Java

Curso Java Curso Online Analista Programador Java Curso Java Curso Online Analista Programador Java Academia Mañana Paseo de la Castellana, 51 - Madrid 28046 Programa General Curso de Java Módulo Uno - Programación Java Básica 1) Programación Java Básico

Más detalles

(de http://www.coreservlets.com/, documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296

(de http://www.coreservlets.com/, documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296 13. APÉNDICE 7. JAVA SERVER PAGES (JSP) JJ.. RAMÓN GARCÍÍA ESSCRIIVÁ ((DSIIC -- UPV)) (de http://www.coreservlets.com/, documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296 13.1. INTRODUCCIÓN

Más detalles

UNIVERSIDAD DE PIURA

UNIVERSIDAD DE PIURA ESPECIALIZACIÓN EN DESARROLLO DE APLICACIONES EMPRESARIALES CON JAVA EE Ofrecer al alumno los conocimientos necesarios para la construcción de sistemas informáticos bajo una arquitectura cliente servidor

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

Introducción a las aplicaciones WEB

Introducción a las aplicaciones WEB Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid 3 de mayo de 2010 Qué es Internet? I LAN: Local Area Network, red de ámbito local. Qué es Internet? II Qué es Internet?

Más detalles

Capítulo 2 : Marco Teórico

Capítulo 2 : Marco Teórico Capítulo 2 : Marco Teórico En este capítulo se darán a conocer algunos conceptos básicos del contexto de este trabajo, con la finalidad de situar al problema dentro de un conjunto de conocimientos. Dentro

Más detalles

SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID

SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID Versión 1.2 Julio 2010 Página: 1 CONTROL DE CAMBIOS Fecha Versión Cambios 01/01/2006 1.0 Primera versión 11/09/2008 1.1 Se

Más detalles

Introducción a AJAX y visión global de la práctica

Introducción a AJAX y visión global de la práctica Introducción a AJAX y visión global de la práctica Modelo de aplicaciones Web clásico (1) La mayor parte de las interacciones del usuario causan una petición HTTP al servidor Web El servidor Web procesa

Más detalles

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine. Capítulo 6 Servlets En esta sección se va a tratar el primer componente que corre del lado del servidor, y es uno de los puntos fundamentales para la comunicación entre el cliente (browser) y el servidor.

Más detalles

Introducción a JAX-WS Web Services

Introducción a JAX-WS Web Services INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ALUMNO: SANLUIS CASTILLO JOSE DAVID PROFESOR: CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO MATERIA: WEB APPLICATION DEVEPLOMENT Introducción a JAX-WS

Más detalles

JavaEE. www.javasoft.com

JavaEE. www.javasoft.com JavaEE Java Enterprise Edition www.javasoft.com Por qué Java en el servidor? Ventajas Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecución

Más detalles

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1 Gerardo Lecaros Felipe Díaz Problemática Petición de salas de forma tradicional Solución J2EE Java 2 Platform, Enterprise Edition

Más detalles

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Arquitectura Java para el Cuarto Ejercicio José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Sumario Introducción Arquitectura en n-capas Arquitectura y el Cuarto Examen Java y su modelo

Más detalles

PARTE 1 CAPÍTULO 1. Agradecimientos xix Acercadelautor xx Introducción xxi. xxii. Servlets 2. I Y2.2 2

PARTE 1 CAPÍTULO 1. Agradecimientos xix Acercadelautor xx Introducción xxi. xxii. Servlets 2. I Y2.2 2 on en... o Agradecimientos xix Acercadelautor xx Introducción xxi Código real para programadores formales Cómo está organizado este libro xxiii Convenciones xxvii Recursos en Web xxvii xxii PARTE 1 Servlets

Más detalles

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response. TEMARIO 1-Introducción Entorno de Desarrollo Integrado ( que es, para que nos sirve, distintos tipos) Presentación del Netbeans (descarga, instalación, aspectos fundamentales.) Principales Servidores de

Más detalles

Elementos sintácticos de una JSP.

Elementos sintácticos de una JSP. 1 JSP's Una JSP es un documento de texto parecido a HTML que describe como procesar una petición para crear una respuesta. Permiten separar la generación de interfaz de usuario (HTML) de la lógica de negocio.

Más detalles

HTTP, CGI, Applets y Servlets

HTTP, CGI, Applets y Servlets HTTP, CGI, Applets y Servlets Sistemas de Operación II CI-4821 Sep-Dic 2006 Mercedes Martínez 00-33042 Aixbel Martínez 01-34114 Mario Felaco 02-34888 José Luís Castillo 01-33691 Yonathan Ledo 01-34033

Más detalles

JAVA WEB 1er Nivel Servlet + JSP + JDBC + Sesiones

JAVA WEB 1er Nivel Servlet + JSP + JDBC + Sesiones JAVA WEB 1 er Nivel Servlet + JSP + JDBC + Sesiones En vivo y en directo usando el internet 1 sesión por semana 6 sesiones en total Primera sesión: Temas Descargar e instalar del servidor Tomcat Qué es

Más detalles