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 ( que será el que utilizaremos en este curso, Caucho Resin ( y Jetty ( 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: 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" " 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 ( 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=" %> <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 ( 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 ( 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" " <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=" xmlns:xsi=" xsi:schemalocation=" <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 ( - 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

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

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

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

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

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

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013 - MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD Rev. 01- FEBRERO 2013 Software de diagnóstico de la seguridad de la información y autoimplantación

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

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

- MANUAL TÉCNICO - Implantación de software de Marketing Online

- MANUAL TÉCNICO - Implantación de software de Marketing Online - MANUAL TÉCNICO - Implantación de software de Marketing Online Rev. 01- MAYO 2013 Implantación de software de Marketing Online Teléfono Adeada: 945 253 388 Email Adeada: adeada@adeada.com REALIZADO POR:

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

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

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

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

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

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Curso de JavaServer Faces

Curso de JavaServer Faces 1 Una JavaBean es una clase Java que sigue las siguientes convenciones: Constructor vacío Atributos de clase privados Por cada atributo, se crean los métodos getters y setters El Objetivo de los Managed

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

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

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición

Más detalles

Manual de uso básico de la aplicación

Manual de uso básico de la aplicación Manual de uso básico de la aplicación Autor del documento Centro de Apoyo Tecnológico a Emprendedores, Fundación Parque Científico y Tecnológico de Albacete Datos de contacto E-Mail: bilib@bilib.es Página

Más detalles

PROGRAMACIÓN PÁGINAS WEB CON PHP

PROGRAMACIÓN PÁGINAS WEB CON PHP PROGRAMACIÓN PÁGINAS WEB CON PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

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

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

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

Manual CMS Mobincube

Manual CMS Mobincube Manual CMS Mobincube CMS Mobincube Qué es? El CMS (Sistema de Gestión de Contenidos) es un completo website que permite la creación y actualización de contenido remoto. De esta forma, una vez creada una

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts Temario Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts Abril 2007 1. Introducción Se describe a continuación de forma detallada el programa del curso Desarrollo de Aplicaciones Web con Java: J2EE

Más detalles

Capitulo III. Diseño del Sistema.

Capitulo III. Diseño del Sistema. Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje

Más detalles

Programación páginas web. Servidor (PHP)

Programación páginas web. Servidor (PHP) Programación páginas web. Servidor (PHP) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte servidor con la tecnología PHP y el servidor de bases de datos MySQL.

Más detalles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS En este manual aprenderemos a introducir un Ticket de Soporte (Incidencia Informática) y ver todo el proceso hasta que se resuelve. Para poder escribir Tickets

Más detalles

Instalar y configurar W3 Total Cache

Instalar y configurar W3 Total Cache Instalar y configurar W3 Total Cache en WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La velocidad de carga de una web influye mucho a la hora de mejorar el

Más detalles

Guía rápida del usuario. Dolibarr.es ERP/CRM versión1.0

Guía rápida del usuario. Dolibarr.es ERP/CRM versión1.0 Guía rápida del usuario Dolibarr.es ERP/CRM versión1.0 2 Guía rápida del usuario Dolibarr.es ERP/CRM Agradecimiento especial a_ María Martí Diseño y maquetación_ www.erretepe.com versión 1.0 Guía Rápida

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

Person IP CRM Manual MOBILE

Person IP CRM Manual MOBILE Manual MOBILE División Informática BuscPerson Telecomunicaciones : Manual MOBILE 0.- Introducción 3 0.1 Configuración de los terminales 3 0.2 Acceso de Usuarios 3 1.- Funcionalidades CRM 5 1.1 Agenda del

Más detalles

Redes de área local: Aplicaciones y servicios WINDOWS

Redes de área local: Aplicaciones y servicios WINDOWS Redes de área local: Aplicaciones y servicios WINDOWS 4. Servidor DNS 1 Índice Definición de Servidor DNS... 3 Instalación del Servidor DNS... 5 Configuración del Servidor DNS... 8 2 Definición de Servidor

Más detalles

Manual de uso básico de la aplicación

Manual de uso básico de la aplicación Manual de uso básico de la aplicación Autor del documento Centro de Apoyo Tecnológico a Emprendedores, Fundación Parque Científico y Tecnológico de Albacete Datos de contacto E-Mail: bilib@bilib.es Página

Más detalles

Manual para la utilización de PrestaShop

Manual para la utilización de PrestaShop Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para

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

Manual del Alumno de la plataforma de e-learning.

Manual del Alumno de la plataforma de e-learning. 2 Manual del Alumno de la Plataforma de E-learning 3 4 ÍNDICE 1. Página de Inicio...7 2. Opciones generales...8 2.1. Qué es el Campus...8 2.2. Nuestros Cursos...9 2.3. Cómo matricularme...9 2.4. Contactar...9

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

Manual del panel. Core-Admin

Manual del panel. Core-Admin Manual del panel Core-Admin - Manual del panel Core-Admin ÍNDICE 1. Introducción...3 2. Requisitos iniciales...3 2.1. Navegadores soportados...3 2.2. Javascript y Java...3 3. Usar Core-Admin...3 3.1. Acceder

Más detalles

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007 Servicio de Informática y Comunicaciones Para poder diseñar un formulario y que éste nos envíe los resultados a nuestro correo electrónico, necesitamos

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

INSTALACIÓN DE MEDPRO

INSTALACIÓN DE MEDPRO 1 Estimado Cliente: Uno de los objetivos que nos hemos marcado con nuestra nueva plataforma de gestión, es que un cliente pueda instalar MedPro y realizar su puesta en marcha de forma autónoma. Siga paso

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM Versión 1.4 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de usuario

Más detalles

Unidad Didáctica 12. La publicación

Unidad Didáctica 12. La publicación Unidad Didáctica 12 La publicación Contenido 1. Desarrollar y explotar 2. Definición del Sitio 3. Alojar nuestra primera página Web 4. Configurar la conexión FTP U.D. 12 La publicación 1. Desarrollar y

Más detalles

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER 2011 2012 COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER WWW.FAUBELL.COM vicente@faubell.com Hasta ahora hemos visto una pequeña introducción a la creación de las páginas web. No te preocupes por

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

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

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico) MANUAL DE AYUDA SAT Móvil (Movilidad del Servicio Técnico) Fecha última revisión: Abril 2015 INDICE DE CONTENIDOS INTRODUCCION SAT Móvil... 3 CONFIGURACIONES PREVIAS EN GOTELGEST.NET... 4 1. INSTALACIÓN

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS Página 1 de 20 INSTALACIÓ N A3ERP INTRODUCCIÓN La instalación de a3erp v9 ha sufrido una trasformación importante respecto a sus versiones anteriores. Cualquier instalación exige la existencia de un pc

Más detalles

Curso de HTML5 y CSS3

Curso de HTML5 y CSS3 Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 1 Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 2 2 HTML sin duda, definió

Más detalles

Guía de Instalación. Glpi

Guía de Instalación. Glpi Guía de Instalación Glpi Autor del documento: Centro de Apoyo Tecnológico a Emprendedores Datos de contacto: E-Mail: bilib@bilib.es Página Web: www.bilib.es Teléfono: 967 555 311 Versión del documento:

Más detalles

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1

port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1 Manual de Portafirmas V.2.3.1 1 1.- Introducción 2.- Acceso 3.- Interfaz 4.- Bandejas de peticiones 5.- Etiquetas 6.- Búsquedas 7.- Petición de firma 8.- Redactar petición 9.- Firma 10.- Devolución de

Más detalles

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

CIF-KM. GUÍA DE LOS PRIMEROS PASOS CIF-KM. GUÍA DE LOS PRIMEROS PASOS Secciones 1. CONCEPTOS PREVIOS. 2. INSTALAR CIF-KM. 2.1 Descargar e instalar CIF-KM. 2.2 Configuración de CIF-KM. 2.3 Acceso externo al servidor de CIF-KM. 3. PRIMERA

Más detalles

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos Sistemas de Información Grado de Informática Dpto. de Informática e Ingeniería

Más detalles

PRESENTACIÓN DEL PRODUCTO

PRESENTACIÓN DEL PRODUCTO PRESENTACIÓN DEL PRODUCTO esernet, s.l. Sebastián Elcano, 32 Planta 1 Oficina 22 28012 Madrid Teléfono: 91 433 84 38 -- Fax. 91 141 21 89 www.esernet.com -- esernet@esernet.com 1. Introducción 2. Descripción

Más detalles

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de: Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su

Más detalles

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS Instalación y mantenimiento de servicios de Internet U.T.3.- Servicio DNS 1 Qué es el servicio DNS? A los usuarios de Internet les resulta complicado trabajar con direcciones IP, sobre todo porque son

Más detalles

Programación páginas web con ASP.NET 3.5 (C#)

Programación páginas web con ASP.NET 3.5 (C#) Horas de teoría: 40 Horas de práctica: 40 Programación páginas web con ASP.NET 3.5 (C#) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS

MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS 1/8 GESTOR DE CONTENIDOS Este manual va dirigido a la persona o personas que sean las encargadas de mantener los contenidos

Más detalles

5. Composer: Publicar sus páginas en la web

5. Composer: Publicar sus páginas en la web 5. Composer: Publicar sus páginas en la web Si nuestras páginas existen únicamente en el disco duro local, sólo nosotros podremos navegar por ellas, pero nadie más podrá hacerlo. Composer nos permite publicarlas

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

Tutorial: Primeros Pasos con Subversion

Tutorial: Primeros Pasos con Subversion Tutorial: Primeros Pasos con Subversion Introducción Subversion es un sistema de control de versiones open source. Corre en distintos sistemas operativos y su principal interfaz con el usuario es a través

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Iptables, herramienta para controlar el tráfico de un servidor

Iptables, herramienta para controlar el tráfico de un servidor Iptables, herramienta para controlar el tráfico de un servidor La seguridad es punto muy importante a tener en cuenta en cualquier organización de ahí que sea fundamental hacer uso de aquellos mecanismos

Más detalles

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario 14 CORREO SEGURO. Hay aplicaciones de correo que permiten enviar y recibir correos cifrados y firmados digitalmente utilizando criptografía. Estas operaciones garantizan el intercambio seguro de información,

Más detalles

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE Versión 1.3 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario del NORMATIVA

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web APLICATECA Guía para la contratación y gestión de Hacemos Tu Web INDICE 1 QUÉ ES HACEMOS TU WEB?... 1 1.1 PARA QUÉ SIRVE?... 1 1.2 CARACTERÍSTICAS DE HACEMOS TU WEB... 1 1.3 REQUERIMIENTOS DEL SERVICIO...

Más detalles

FOROS. Manual de Usuario

FOROS. Manual de Usuario FOROS Manual de Usuario Versión: 1.1 Fecha: Septiembre de 2014 Tabla de Contenidos 1. INTRODUCCIÓN... 4 1.1 Propósito... 4 1.2 Definiciones, acrónimos y abreviaturas... 4 2. ESPECIFICACIONES TÉCNICAS...

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

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web Arquitectura 1.- Aplicaciones Web Definición Contenidos 1.- Aplicaciones Web 2.- Arquitectura de aplicaciones Web Lo que distingue una aplicación Web de una mero sitio Web reside en la posibilidad que

Más detalles

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS MANUAL DE USUARIO APLICACIÓN SYSACTIVOS Autor Edwar Orlando Amaya Diaz Analista de Desarrollo y Soporte Produce Sistemas y Soluciones Integradas S.A.S Versión 1.0 Fecha de Publicación 19 Diciembre 2014

Más detalles

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura Desarrollo de Proyectos en en el Gobierno de Extremadura Página 1 de 10 Control de versiones Núm Fecha Descripción Autores 1.0 01/09/2012 Estandar para el desarrollo de portales con el gestor de contenidos

Más detalles

Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas.

Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas. 1. Manual de usuario 1.1 Esquema de Oasis Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas. Gracias a OASIS usted podrá comprar o seleccionar aplicaciones

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

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

Instalación y Registro Versiones Educativas 2013

Instalación y Registro Versiones Educativas 2013 Instalación y Registro Versiones Educativas 2013 Octubre 2012 Instalación y Registro Online página 2 Índice Introducción... 4 Instalación Versión Educativa Aula... 6 1. Setup... 6 2. Instalación... 7 3.

Más detalles

Facultad de Ingeniería Escuela de Ciencias y Sistemas 2011-14674 Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

Facultad de Ingeniería Escuela de Ciencias y Sistemas 2011-14674 Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces JSF + JSP + RichFaces Manual Introductorio al uso de JSF, JSP y RichFaces en Java El siguiente documento es un manual muy introductorio, ya que la primera vez que me encontré con estas 3 frases juntas

Más detalles

Sitios remotos. Configurar un Sitio Remoto

Sitios remotos. Configurar un Sitio Remoto Sitios remotos Definir un sitio remoto significa establecer una configuración de modo que Dreamweaver sea capaz de comunicarse directamente con un servidor en Internet (por eso se llama remoto) y así poder

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

Descripción del tutorial. Contenidos. www.facebook.com/codigonexogr. @codigonexo. www.plus.google.com/+codigonexogr/

Descripción del tutorial. Contenidos. www.facebook.com/codigonexogr. @codigonexo. www.plus.google.com/+codigonexogr/ www.facebook.com/codigonexogr @codigonexo www.plus.google.com/+codigonexogr/ Contenidos 1. Introducción al patrón MVC 1.1.Conceptos básicos Qué es un patrón 1.2.Estructura del patrón MVC 1.3.Cómo funciona

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

Manual de uso de Moodle para alumnos

Manual de uso de Moodle para alumnos Manual de uso de Moodle para alumnos Versión adaptada para Eureka FACULTAD DE PSICOLOGÍA - UNIVERSIDAD DE GRANADA Granada, Septiembre 2011 1. Primeros pasos...3 I. Registro de alumnos...3 II. Olvidó su

Más detalles

SMS Gestión. manual de uso

SMS Gestión. manual de uso SMS Gestión manual de uso índice qué es SMS Gestión 2 acceso al servicio 3 01 acceso con la clave de servicios de Orange 4 02 acceso personalizado 6 02.1 cómo personalizar su acceso a la aplicación 7 02.2

Más detalles