Práctica 2: Extensión de un servidor con servlets
|
|
|
- Beatriz Rojas Barbero
- hace 10 años
- Vistas:
Transcripción
1 Introducción Práctica 2: Extensión de un servidor con servlets ( 2 horas ) En esta práctica veremos otra forma de realizar aplicaciones semejantes a los CGIs, los servlets. El enfoque del diseño con servlets es muy diferente al de CGIs. Los CGIs son programas que el servidor debe ejecutar. Son procesos que el servidor arranca y espera a que finalicen para obtener un resultado. Los servlets son extensiones del propio servidor. Objetivos Identificar las partes de un servlet. Comparar prestaciones de los servlets y CGIs. Utilizar servlets. Diseñar y programar servlets. CGIs, FastCGI y API del servidor En la anterior práctica hemos visto cómo extender la funcionalidad de un servidor web utilizando CGI: incorporando un programa externo que responde a algunas peticiones dirigidas al servidor web. El modo de funcionamiento es el siguiente: Petición 1 a CGI A Proceso principal 1 proceso/petición Proc hijo de CGI A Petición 1 a CGI B Petición 2 a CGI A Proc hijo de CGI B Proc hijo de CGI A Fig. 1: un servidor web que utiliza procesos (comandos) CGI Cada petición crea un proceso que recibe las variables de entorno junto con los datos y genera una respuesta por la salida estándar. Este procedimiento consume muchos recursos del servidor y es lento. Para solucionar lo anterior, se creó una mejora de los CGI, los FastCGI. Hacen que un solo proceso cargado vaya sirviendo todas las peticiones sin descargarse (un proceso persistente o daemon). A veces un proceso no es suficiente y hace falta tener varios procesos a la vez atendiendo a varias peticiones que tienen lugar simultáneamente. 1
2 Petición 1 a CGI A Proceso principal (Único) Proc hijo de CGI A Petición 1 a CGI B FastCGI: 1 proceso/cgi Petición 2 a CGI A (Único) Proc hijo de CGI B Fig. 2: un servidor que utiliza procesos persistentes FastCGI Tanto los CGI como FastCGI no pueden interactuar con el interior del servidor (por ejemplo generar una línea en los ficheros de log del servidor). Otra alternativa para extender el servidor de forma más eficiente consiste en utilizar las API de extensión de cada servidor (NSAPI en el servidor de Netscape/Sun, ISAPI en el servidor de Netscape, o un módulo en Apache). Las extensiones forman parte del proceso servidor y estas API ofrecen mucha más funcionalidad y control sobre el servidor web, además de velocidad al estar compiladas y formar parte del mismo ejecutable. Petición 1 extensión A Petición 1 extensión B Petición 2 extensión A Proceso principal Extensión A Extensiones: parte del proc servidor Extensión B Fig. 3: un servidor extendido usando el API de extensión Sin embargo tienen tres problemas importantes: son extensiones no portables, específicas para un único servidor; son más complejas de desarrollar y mantener; introducen riesgo en el proceso servidor: peligro en cuanto a seguridad y fiabilidad (un fallo de la extensión puede acabar con el proceso servidor de web). Servlet Java Un servlet es una extensión genérica del servidor: una clase java que puede cargarse dinámicamente para "extender" la funcionalidad del servidor web. En muchos casos sustituye con mejoras a los CGI. Es una extensión que corre en una Máquina Virtual Java (JVM) dentro del servidor: es seguro y transportable. Como se ejecutan en el servidor, el cliente web los invocará como si fueran CGI, y en respuesta sólo verá html, sin que el cliente tenga que tratar con Java (como en los applets, que es código Java que se ejecuta en una máquina virtual Java del cliente web). 2
3 Un servlet es un trozo de código que corre en un servidor: se pueden usar para "extender" servidores de web pero también otros servidores (ej: ftp para añadir comandos nuevos, correo para filtrar o detectar virus, etc.) Petición a Servlet A Proceso principal JVM ServletA Petición a Servlet B Petición a Servlet A Servlet: 1 thread/petición ServletB Fig. 4: un servidor extendido con servlets en su JVM Los servlets son una extensión estándar de Java, y las clases suelen venir con las distribuciones de Java SDK (Kit de Desarrollo Java). Para usar los servlets hace falta un "motor" donde probarlos y ponerlos en servicio. Pueden ser servidores que ya soportan servlets (por ejemplo Domino Go de Lotus, WebSite de O'Reilly, Jigsaw del Consorcio Web), o módulos que se pueden añadir a servidores que inicialmente no los soportaban (por ejemplo Jserv para Apache). En esta práctica vamos a usar el servidor tomcat, escrito en Java que directamente soporta servlets. Las ventajas principales de los servlets son las siguientes: Portabilidad: usan siempre las mismas llamadas (API) y corren sobre Java, por lo que son verdaderamente portátiles entre entornos (que soporten servlets). Potencia: pueden usar todo el API de Java (excepto AWT), además de comunicarse con otros componentes con RMI, CORBA, usar Java Beans, conectar con bases de datos, abrir otros URL, etc Eficiencia: una vez cargado queda en la memoria del servidor como una única instancia. Varias peticiones simultáneas generan varios threads sobre el servlet, que es muy eficiente. Además, por estar cargado en memoria puede mantener su estado y mantener conexiones con recursos externos como bases de datos que pueden requerir un cierto tiempo para conectar. Seguridad: además de la seguridad que introduce el lenguaje Java (gestión de memoria automática, ausencia de punteros, tratamiento de excepciones), el gestor de seguridad "security manager" puede evitar servlets malintencionados o mal escritos que podrían dañar al servidor web. Integración con el servidor: pueden cooperar con el servidor en formas que los CGI no pueden, como cambiar el path del url, poner líneas de log en el servidor, comprobar la autorización, asociar tipos MIME a los objetos o incluso añadir usuarios y permisos al servidor. 3
4 El API de Servlets Los servlets usan clases e interfaces de dos paquetes: javax.servlet que contiene clases para servlets genéricos (independientes del protocolo que usen) y javax.servlet.http (que añade funcionalidad particular de http). El nombre javax indica que los servlets son una extensión. Los servlets no tienen el método main() como los programas Java, sino que se invocan unos métodos cuando se reciben peticiones. Cada vez que el servidor pasa una petición a un servlet se invoca el método service() que habrá que rescribir (override). Este método acepta dos parámetros: un objeto petición (request) y un objeto respuesta. Los servlets http, que son los que vamos a usar, tienen ya definido un método service() que no hace falta redefinir y que llama a doxxx(), con Xxx el nombre de la orden que viene en la petición al servidor web: doget(), dopost(), dohead(), etc Subclase HttpServlet Petición GET respuesta doget() service() Petición POST respuesta dopost() implementar en una subclase: Fig. 5: Un servlet http que trata peticiones GET y POST. Tareas Instalación del servidor y prueba del primer servlet A continuación veremos el código de un servlet http mínimo que genera una página HTML que dice " Hola Amigos!" cada vez que se invoca en el cliente web. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class hola extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html><big> Hola Amigos!</big></html>"); 4
5 El servidor extiende la clase HttpServlet y rescribe el método doget(). Cada vez que el servidor web recibe una petición GET para este servlet, el servidor invoca su método doget() pasándole un objeto con datos de la petición HttpServletRequest y con otro objeto HttpServletResponse para devolver datos en la respuesta. El método setcontenttype() del objeto respuesta (res) establece como text/html el contenido MIME de la respuesta. El método getwriter() obtiene un canal de escritura que convierte los caracteres Unicode que usa Java en el juego de caracteres de la operación HTTP (normalmente iso ). Ese canal se usa para escribir el texto HTML que verá el cliente web. Para poderlo ejecutar, hay que disponer de una máquina virtual Java (JVM), las clases de servlets, y un servidor web que soporte servlets. Vamos a usar la máquina virtual de Linux, y el servidor Tomcat. Un servidor web escrito en java que soporta servlets e incluye las clases necesarias. Una vez comprobado que la JVM funciona (se puede ejecutar javac y comporbar que la variable CLASSPATH apunta a las clases estándar de Java, hay que copiar tomcat e instalarlo, arrancar el servidor web y probar que funciona, tal como explica la documentación que lo acompaña. Para probar los servlets, tenemos que colocarnos en el directorio de trabajo. Si tomcat está instalado como un subdirectorio de vuestro directorio personal, vamos al directorio de trabajo con la orden: cd ~/tomcat/webapps/test/web-inf/classes Tomcat implementa la especificación 2.2 de servlets. Trabaja con unidades llamadas webapps que pueden ser empaquetadas e instaladas en otros servidores. Una "webapp" es una aplicación completa que puede tener páginas web estáticas (ficheros html, gif, jpeg, etc.) y servlets. Los servlets están en el directorio Web-inf/classes. Allí para facilitar las cosas podemos dejar tanto el código fuente.java como el código compilado.class (el código fuente no se debería dejar en este lugar en un servidor real, se hace así por comodidad). Si arrancamos un cliente web (por ejemplo netscape), y se visita el url nos saldrá una página que ha servido nuestro propio servidor en nuestra máquina (localhost), en el puerto tcp Si editamos el fichero hola.java con el contenido anterior. Lo compilamos con javac hola.java. Si no hay errores de compilación, tendremos en el mismo directorio el fichero hola.class. Nuestro primer servlet. Probar que funciona visitando en el cliente web el url: 5
6 Formulario y servlet Si queremos enviar al servlet datos para que los procese, podemos probar el siguiente formulario HTML (hola2.html) que colocaremos en el directorio: ~/jakartatomcat/webapps/test Si visitamos el url se podrá ver el formulario que corresponde al siguiente código HTML: hola2.html: <html> <p>dame tu nombre:</p> <form action=" method=post> <input type=text name="nombre"> y tu edad: <input type=text name="edad"> <input type=submit value="enviar con Post"> </form> <hr> <form action=" method=get> <input type=text name="nombre"> y tu edad: <input type=text name="edad"> <input type=submit value="enviar con Get"> </form> </html> Antes de pulsar algún botón, tendremos que dejar en el lugar de los servlets el fichero hola2.java y compilarlo. Una vez obtenido hola2.class probar la interacción entre un formulario html y un servlet que procesa los datos que le llegan tanto en una petición GET como POST. hola2.java: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class hola2 extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); String nombre = req.getparameter("nombre"); String edad = req.getparameter("edad"); out.println("<html><big>hola Amigo "+ nombre + " de " + edad + ".</big></html>"); El método dopost() se puede implementar muy fácil llamando al método doget(), ya que en este nivel no importa cómo los datos se han pasado al servidor. En general no hace falta el código siguiente y un servlet suele implementar sólo un método. 6
7 public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); La ventaja principal de implementar dopost() es que tiene la ventaja adicional de aceptar gran cantidad de datos de entrada (es una limitación de los clientes y servidores web). Como información interesante para otros servlets, todos los datos que se pasan en una petición al servidor son strings. Si se quisiera convertir la edad en un entero habría que introducir el código siguiente. No es necesario hacerlo ahora, es sólo para aclarar una duda que se os podría presentar. int edadi = 0; try { edadi = Integer.parseInt(edad); catch (NumberFormatException ignored) { if (edad!= null) out.println("<html><big>hola Amigo "+ nombre + " de " + edad + " " + edadi + ".</big></html>"); else out.println("<html>amigo " + nombre + ", falta la edad.</html>"); Como hemos apuntado antes, un servlet "sobrevive" a una petición. El "ciclo de vida" es: 1. Crear e inicializar el servlet 2. Procesar cero o más peticiones de clientes web 3. Destruir el servlet y "recoger sus restos" (garbage collection) De esta manera, una vez se carga el servlet, es muy eficiente pues sólo hay una copia cargada (se ejecutan uno o varios thread), no hay que crear nuevos objetos (un solo objeto servlet), y tiene persistencia: puede guardar información entre peticiones, como contadores o conexiones a una base de datos (esto último puede ser muchísimo más eficiente que abrir y cerrar la conexión con la base de datos en cada petición). En el ejemplo siguiente, se añade el atributo cont, que se va incrementando en cada petición. Modificar el ejemplo anterior para probar el efecto de invocar varias veces el servlet desde el cliente web. hola3.java: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class hola3 extends HttpServlet { int cont = 0; public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); String nombre = req.getparameter("nombre"); cont ++; 7
8 out.println("<html><big>hola Amigo "+ nombre + "</big><br>"+ cont + " Accesos desde su carga.</html>"); public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); Tenemos una solulción al problema de guardar el estado, los CGIs no lo permiten tenemos que guardarlo nosotros mismos en ficheros o bases de datos. Pero no todo es perfecto. Tenemos el importante problema de accesos concurrentes a variables o partes del código críticas. Tendremos que usar monitores o semáforos pare gestionar estos accesos concurrentes. En Java tenemos una forma muy sencilla de trabajar con monitores synchronized() synchronized(this) { cont ++; out.println("<html><big>hola Amigo "+ nombre + "</big><br>"+ cont + " Accesos desde su carga.</html>"); Además, si el servlet crea threads, también éstas son persistentes. A continuación se usa el método init() y el método destroy() para iniciar y parar un thread de ejecución, lo que permite que el servlet vaya trabajando durante su vida a la vez que va atendiendo en otros thread a las peticiones que le llegan. En el ejemplo siguiente, el thread que inicial el método init() va contando segundos transcurridos desde la carga del servlet: duerme durante 1000 milisegundos e incrementa en uno el contador de segundos, dentro de un bucle infinito. hola4.java: import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class hola4 extends HttpServlet implements Runnable { int cont = 0; int segs = 0; Date fechainicio = new Date(); // Fecha inicio ejecución contadorsegs; public void init(servletconfig config) throws ServletException { super.init(config); // siempre contadorsegs = new (this); contadorsegs.setpriority(.min_priority); contadorsegs.start(); public void run() { while (true) { try { contadorsegs.sleep(1000); catch (InterruptedException ignored) { segs ++; 8
9 public void destroy() { contadorsegs.stop(); Modelo de ejecución alternativo. El modelo de ejecución estándar es una sola instancia de servlet por cada servlet registrado y tantos threads como peticiones simultáneas. Hay otro modelo de ejecución: tener varias instancias de servlet procesando cada una peticiones distintas. Petición Petición Petición Proceso principal Conjunto (pool) de servlets Instancia Instancia Instancia Fig. 6: El modelo de un thread por servlet. Este modelo se activa indicando que se implementa el interface javax.servlet.singlemodel. No tienen ningún requisito adicional, indicando que implementa ese interface ya actúa de esta manera. Dicho de otra manera: nunca dos threads ejecutarán el método service() de un servlet. public class hola5 extends HttpServlet implements SingleModel Este modelo no tiene utilidad para un contador o aplicaciones que precisan mantener un estado común. Puede servir para evitar sincronización pero tratando peticiones de forma eficiente. Por ejemplo en una aplicación con base de datos en que cada instancia ha de ejecutar un conjunto de operaciones que forma parte de una transacción o en que cada conexión es diferente. De esta forma, cada instancia tendría una conexión distinta a la base de datos. Diseño Vista esta pequeña introducción a la programación de servlets, pasamos a nuestro primer diseño. Queremos de diseñéis un servlet que tengan la misma aplicación que la práctica con CGIs. 9
10 El servlet tiene que aceptar los pedidos de muebles extendiendo el método GET doget(). El mismo servlet ha de listas los pedidos hechos extendiendo el método POST dopost(). En este caso los pedidos podemos guardarlos en variables globales dentro del propio servlet (la forma real de hacerlo es guardarlos en una base de datos). Recordemos que los parametros son cadenas de caranteres String. Para poder procesar y convertir estas cadenas a otros tipos podemos usar java.lang.string Referencias: Jason Hunter, William Crawford. Libro Java Servlet Programming. 1ª Ed. Nov O Reilly. ISBN: X The Apache Software Foundation. Tomcat Documentation. [en línea] versión 3.2 < [Consulta: 5 marzo 2001] Sun Microsystems, Inc. Java (TM) Servlet Technology. [en línea] 23 febrero 2001 < [Consulta: 5 marzo 2001] Sun Microsystems, Inc. JavaTM 2 Platform, Standard Edition, API Specification. [en línea] v1.2.2 < [Consulta: 5 marzo 2001] Dan Connolly. CGI: Common Gateway Interface [en línia] 13 octubre 1999 < [Consulta: 19 febrer 2001] Rob Saccoccio. FastCGI [en línea] 25 noviembre 2001http:// [Consulta: 5 marzo 2001] 10
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
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,
USANDO SERVLETS EN UN SERVIDOR WEB RESIN
USANDO SERVLETS EN UN SERVIDOR WEB RESIN Servidor Web Resin Resin es un servidor web que permite no solo despachar un página web, sino aplicaciones web construidos bajo la arquitectura J2EE, así como el
NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos http://cupi2.uniandes.edu.
1 NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets 2 Agenda Protocolo HTTP Formas HTML Servlets 3 Protocolo HTTP Hypertext Transfer Protocol (HTTP) - 1990 Versión 1.1 Mecanismo
Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María
Nicolás Troncoso Carrère ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Valparaíso, 2006 1 2 3 Porqué paginas dinamicas? Confirmacion de suscripciones. Contenido generado
Ejemplos de Servlet y JSP Web Application Development
Ejemplos de Servlet y JSP Web Application Development HERNÁNDEZ CRUZ DULCE 13/09/2011 INTRODUCCIÓN Servlets Los Servlets son módulos que extienden los servidores orientados a petición-respuesta, como los
javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet
Lectura 14. Servlets Un Servlet es un programa que se ejecuta en un servidor Web. Los clientes pueden invocarlo utilizando el protocolo HTTP. Comparativamente, así como los applet son ejecutados y cargados
Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.
Capítulo 6 Servlets En esta sección se va a tratar el primer componente que corre del lado del servidor, y es uno de los puntos fundamentales para la comunicación entre el cliente (browser) y el servidor.
Tema 1. Introducción a JAVA
Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems
Configuración servidor Tomcat
Apuntes de J2EE Configuración servidor Tomcat Uploaded by Ingteleco http://ingteleco.webcindario.com [email protected] La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta
Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS
Tecnología de Programación Clase 22 Diego C. Martínez Departamento de Ciencias e Ing geniería de la Computación Universidad Nacional del Sur Componentes Web J2EE presenta los componentes Web (web components):
Interacción entre Aplicaciones: objetos distribuidos e invocación remota
Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones
Modelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
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
Manual de NetBeans y XAMPP
Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación
Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP
Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero
GedicoPDA: software de preventa
GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente
Introducción a los servlets
Introducción a los servlets (Febrero de 2005) Introducción En breve: un servlet es un programa ejecutado en el servidor (a diferencia de los applets que se ejecutan en el cliente). Es un mecanismo para
COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA
COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador
FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información
FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de
Actualización del Cliente IFI
Actualización del Cliente IFI Pasos para actualizar en diferentes entornos GAyCD Área de Infraestructuras Noviembre 2015 Versión: 1.0 CONTROL DE VERSIONES Título Actualización del Cliente IFI Autor GAyCD
ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"
Unidad 6: Servlets Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat" "Eclipse IDE for Java EE Developers" Para desarrollar aplicaciones que se ejecuten en un servidor web
Aplicaciones Cliente - Servidor
Aplicaciones Cliente - Cliente Presentación + Lógica aplicación SQL Acceso remoto a información a través de red. Un servidor - múltiples clientes. Almacenamiento datos es esperan peticiones: protocolos
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
Java Básico. Empaquetamiento y despliegue de aplicaciones. Copyright
Java Básico Empaquetamiento y despliegue de aplicaciones Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación
Desarrollo de Servicios Web con JBuilder
Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo
Instalación de Tomcat7 en Ubuntu
2. Instala el servidor web java TomCat en Windows y Linux. Documenta los módulos/servicios necesarios. Instala el CMS Java Liferay. Documenta el proceso. Instalación de Tomcat7 en Ubuntu Comenzamos instalando
HTTP, CGI, Applets y Servlets
HTTP, CGI, Applets y Servlets Sistemas de Operación II CI-4821 Sep-Dic 2006 Mercedes Martínez 00-33042 Aixbel Martínez 01-34114 Mario Felaco 02-34888 José Luís Castillo 01-33691 Yonathan Ledo 01-34033
Java RMI. Sistemas Distribuidos Rodrigo Santamaría
+ Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en
INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA
INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA Jaime Fernández ndez Mayo 2006 Índice Java Aplicaciones web Servlets JSP Servidores de aplicaciones IDE`s Ejemplo Historia Java Lenguaje orientado
Dossier de prácticas
Dossier de prácticas Administración de Web Sites Màster d Enginyeria del Software Desenvolupament d aplicacions sobre Internet Fundació Politècnica de Catalunya Jaume Moral Ros Albert Obiols Vives 1 2
Unidad IV: Servlets. Comprender la estructura básica de los Servlets Crear servlets sencillos Presentar el ciclo de vida de un Servlet.
Unidad IV: Servlets Introducción Este unidad presenta los conceptos de Servlets Objetivos Comprender la estructura básica de los Servlets Crear servlets sencillos Presentar el ciclo de vida de un Servlet.
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)
Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)
12/13 Servlets y JSPs (Java Server Pages) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza ([email protected]) " Guión Introducción Servlets Introducción Clases e interfaces del
INTRODUCCIÓN A JAVA. Índice
INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java
Internet Information Server
Internet Information Server Internet Information Server 5.0 es un servidor web, que incluye los servicios de HTTP, HTTPS, FTP, SMTP (correo saliente) y NNTP (grupos de noticias). Además es capaz de ejecutar
GIT Dinahosting 3. Hola!
GIT Manual de uso GIT Dinahosting 2 Contenidos Sobre Git...3 Software...3 Cómo conectarse?...3 Volcar un repositorio remoto...4 Manejar el repositorio...5 Trabajando con ramificaciones...6 Fusionando ramificaciones...6
J2EE Java 2 Enterprise Edition
J2EE Java 2 Enterprise Edition Es el framework oficial de Java para la construcción de aplicaciones empresariales Es una tecnología basada en componentes Ofrece un modelo para el desarrollo de aplicaciones
Tarea 1 Programación José Luis Comesaña
Para la descarga de Java he optado por dirigirme a su propietario ORACLE para iniciar la grabación desde su página oficial: http://www.oracle.com/es/index.html donde seleccionamos Java 2 en el apartado
CAPÍTULO 14. DESARROLLO
CAPÍTULO 14. DESARROLLO DE SISTEMAS ESPECÍFICOS 1. Introducción En los últimos años han aparecido multitud de nuevas plataformas para desarrollar aplicaciones y ponerlas en explotación. En este capítulos
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...
Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...
Contenido Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... 5 Introducción Es tiempo de hablar en detalle de lo que significa
Tema 4: Tecnologías Web Java
Tema 4: Tecnologías Web Java Introducción Aplicación web Aplicación que corre en al menos un servidor y a la que el usuario accede desde un cliente de propósito general (ej.: navegador en un PC, teléfono
Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:
Propósito del prototipo: Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: 1º. Mostrar noticias y eventos propios del grupo de personas que administren la Web.
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
CAPÍTULO 3 VISUAL BASIC
CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para
Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2
Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:
SENTINEL REMOTE CONTROL (S.R.C)
SENTINEL REMOTE CONTROL (S.R.C) Versión G-0.5 Índice de contenidos 0.Consideraciones acerca de este producto...3 1.Objetivo del SRC...3 2.0 Instalación...3 2.1.Parte cliente (gclient)...4 2.1.Parte servidora
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.
Cómo compilar y ejecutar programas en ĺınea de comandos
Cómo compilar y ejecutar programas en ĺınea de comandos Universidad Complutense de Madrid I.E.S. Antonio de Nebrija (Móstoles) http://www.programa-me.com 1 Cómo compilar y ejecutar programas en línea de
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
Redes Locales: El protocolo TCP/IP
Redes Locales: El protocolo TCP/IP Los protocolos de red son las reglas que siguen los equipos conectados a la red para poder comunicarse entre sí, y hablar así el mismo idioma. El grupo de protocolos
MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35. Facultad de Ingeniería, UBA. Junio 2002. Cátedra: Pablo Cosso
MICQ Facultad de Ingeniería, UBA. Junio 2002 Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35 Cátedra: Pablo Cosso Alumno: Diego Fernando Montaldo 75.300 1 de 1 Introducción Este documento
Actividad 1: Utilización cliente FTP (mediante línea de comandos, entornos gráficos y navegadores/exploradores) (I).
PRÁCTICAS SRI TEMA 5 (SERVIDOR FTP) Actividad 1: Utilización cliente FTP (mediante línea de comandos, entornos gráficos y navegadores/exploradores) (I). 1. Iniciamos sesión con un usuario nombre (miguel)
Transacciones: 2PC y 3PC. Aplicaciones de Internet: HTTP/Applets, HTTP/GCI y Java Servlets
Universidad Simón Bolívar Sistemas Operativos II Transacciones: 2PC y 3PC. Aplicaciones de Internet: HTTP/Applets, HTTP/GCI y Java Servlets Daniel Palhazi Cuervo Gustavo Torres Maximiliano Rondon Caracas,
Concurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
INSTALACION MANUAL DE ECLIPSE EN UBUNTU
INSTALACION MANUAL DE ECLIPSE EN UBUNTU Objetivos: Pasar correctamente un programa escrito en Pseudocódigo a C. Editar, compilar y comprobar el funcionamiento de programas usando un IDE. Resumen Cuando
Notas para la instalación de un lector de tarjetas inteligentes.
Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación
- A continuación, se nos abrirá la siguiente ventana pidiendo contraseña, que el cliente haya especificado al instalar Wingest 7
Copia de seguridad en Wingest 7 desde WgAdmin Los pasos a seguir serán los siguientes: - Todos los usuarios de la aplicación deberán estar fuera de ella. - Deberemos entrar en nuestra carpeta de Wingest
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
Solución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO
MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO INDICE DE CONTENIDOS 1) INTRODUCCIÓN... 3 2) OPERACIÓN CON LA PDA... 3 3) GOTELGEST.NET PDA... 3 1) PANTALLA DE INICIO... 3 2) NUEVO DOCUMENTO... 3 3) EDITAR
Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX...
INDICE 1 Configuración previa...2 1.1 Configuración Internet Explorer para ActiveX...2 1.2 Problemas comunes en sistema operativo Windows...8 1.2.1 Usuarios con sistema operativo Windows XP con el Service
A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante
Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,
SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler
Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,
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)
Introducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Java en 2 horas. Rodrigo Santamaría
+ Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión
Estructuras de Datos y Algoritmos Tecnólogo en Informática
Estructuras de Datos y Algoritmos Tecnólogo en Informática INSTRUCTIVO DEL COMANDO MAKE ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 Contenido Introducción... 3 El archivo makefile...
APROVECHAR LA BASE DE DATOS BIBLIOGRÁFICOS REBECA CON EL PRO- GRAMA ABIES.
APROVECHAR LA BASE DE DATOS BIBLIOGRÁFICOS REBECA CON EL PRO- GRAMA ABIES. QUÉ ES REBECA? REBECA es una base de datos que contiene registros bibliográficos en formato Ibermarc. Está concebida como una
Edición de Ofertas Excel Manual de Usuario
Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE
Implementación CAPÍTULO 4
Implementación CAPÍTULO 4 55 CAPÍTULO 4 Implementación En este capítulo se especifican los detalles del desarrollo, las herramientas utilizadas y los diagramas de paquetes. Todas las clases fueron programadas
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
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
Gestión de Retales WhitePaper Noviembre de 2009
Gestión de Retales WhitePaper Noviembre de 2009 Contenidos 1. Introducción 3 2. Almacén de retales 4 3. Propiedades de los materiales 6 4. Alta de retales 8 5. Utilización de retales en un lote de producción
INSTALACIÓN PHP+MYSQL CON EASYPHP
INSTALACIÓN PHP+MYSQL CON EASYPHP La herramienta EasyPhp, configura automáticamente y de manera sencilla un servidor Apache en nuestra máquina junto con un gestor de bases de datos MySQL. Para comenzar
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
Implantar Microsoft Software Updates Service (SUS)
Implantar Microsoft Software Updates Service (SUS) Guía rápida de instalación Versión: 1.0 Autor: Paulino Insausti Barrenetxea Fecha: 15 de Junio de 2005 Licencia: CreativeCommons - ShareAlike Indice 1.Introducción...
PROGRAMACIÓN JEE CON SERVLETS
INTRODUCCIÓN A LOS SERVLETS PROGRAMACIÓN JEE CON SERVLETS Los Servlets son clases Java que se ejecutan en un servidor de aplicación, para contestar a las peticiones de los clientes. Los Servlets no se
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
El lenguaje de programación Java
Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red
Tabla de contenido. 1. Objetivo...3. 2. Asignación de responsabilidades...3. 3. Alcance...3. 4. Procedimientos relacionados...4
Tabla de contenido 1. Objetivo...3 2. Asignación de responsabilidades...3 3. Alcance...3 4. Procedimientos relacionados...4 5. Documentos relacionados...4 6. Proceso...4 6.1 pidgin...4 6.2 instalación...4
Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario
Apéndice 5 Manual de usuario de ColeXión ColeXión 1.0 Manual de usuario Índice 1. Qué es ColeXión?... 2 2. Requerimientos del sistema... 3 3. Instalación de ColeXión... 3 4. Creación de un nuevo esquema...
CITRIX 4.5 - Citrix Application Streaming
1 de 39 01/12/2007 1:06 CITRIX 4.5 - Citrix Application Streaming Es la caracteristica principal de la versión 4.5 de Citrix, el Application Streaming, en este documento se explica cómo usarlo. Application
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
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula: 2010-2946.
Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez Matrícula: 2010-2946 How to How to: Web Server (Apache)!!! Servidor Web El servidor HTTP Apache es
UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO
www.ubs-systems.com Teléfono: 91 3681185 UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO Unidesys Versión 2011 1 CONTENIDO 1 INTRODUCCIÓN 3 2 FUENTES DE DATOS 4 3 INSTALACIÓN DEL
INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL
INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL Grupo de Innovación y Apropiación de Tecnologías de la Información Archivística Compilador: Pedro Antonio Gómez Guarín 1 INSTALACIÓN DE UBUNTU SERVER
Escritorio remoto y VPN. Cómo conectarse desde Windows 7
Escritorio remoto y VPN. Cómo conectarse desde Windows 7 Hay ocasiones en las que es necesario conectarnos a un equipo informático situado a mucha distancia de donde nos encontramos para realizar sobre
GUI A D E I NSTALA CIO N D E AX IS
Dulce María Aguilar López Héctor Daniel Hernández García GUI A D E I NSTALA CIO N D E AX IS PASOS PREVIOS 1. Instalar Java Runtime Environment (JRE) 2. Instalar Java 2 Standar Edition version 1.4 o superior
PRÁCTICA 10. Configuración de Correo y Publicar en la Web
PRÁCTICA 10. Configuración de Correo y Publicar en la Web INFORMÁTICA BÁSICA Publicidad y Relaciones Públicas y Periodismo. Curso 2006/2007 1. Configuración del correo Gestores de correo en la máquina
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
MANUAL DE AYUDA MODULO TALLAS Y COLORES
MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3
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
EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:
EXCEPCIONES EN JAVA Uno de los problemas más importantes al escribir aplicaciones es el tratamiento de los errores. Errores no previstos que distorsionan la ejecución del programa. Las excepciones de Java
Servidores Web (II) Contenidos
Contenidos Servidores (II) Servidores/aplicaciones con/sin Estado Sesiones con Servlets Contextos compartidos con Servlets Acceso concurrente desde Servlets Servidores Cache Servidores Virtuales 1 2 Aplicaciones
