Manual ca011 CURSO JAVA, SERVER PAGES JSP Y SERVLETS

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

Download "Manual ca011 CURSO JAVA, SERVER PAGES JSP Y SERVLETS"

Transcripción

1 Sé diferente, intégrate Mca011 Manual ca011 CURSO JAVA, SERVER PAGES JSP Y SERVLETS Autor: Orlando Gutiérrez Fecha: 17/ 07 / 2013 Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 1

2 INDICE Pag. 3 Pag. 3 Pag. 5 Pag. 6 Pag. 6 Pag. 11 Pag. 14 Pag. 15 Pag. 17 Pag. 21 Pag. 23 Pag. 26 Pag. 27 Pag. 27 Pag. 28 Pag. 30 Pag. 31 Pag. 32 Pag. 34 Pag. 35 Pag. 35 Pag. 46 Pag. 49 Pag. 52 Pag. 54 Lección 1 Qué es un Servlet Lección 2 Ciclo de vida de un Servlet Lección 3 Compartiendo información en componentes Webs Lección 4 Inicializando un Servlet Lección 5 Requests y Responses Lección 6 Invocando recursos Web externos Lección 7 Accediendo el contexto Web Lección 8 Manteniendo el estado de un cliente Lección 9 Finalizando un Servlet Lección 10 Qué es JSP Lección 11 Ciclo de vida de una página JSP Lección 12 Objetos de JSP Lección 13 Variables Lección 14 Objetos Implícitos Lección 15 Operadores Lección 16 Funciones Lección 17 Tags personalizados Lección 18 Incluir Applets Lección 19 Estableciendo propiedades para grupos de JSPs Lección 20 Standard Tag Library (STL) Lección 21 Core Tags Lección 22 XML Tags Lección 23 Tags de Internacionalización Lección 24 SQL Tags Lección 25 Tags definidas por el usuario Pag. 57 Lección 26 Resumen sintaxis JSP (Scripts, Scriptles, Expresiones ) Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 2

3 LECCION 1 Qué es un Servlet Motivación: Con el desarrollo y la utilización de aplicaciones WEB surge la necesidad de mostrar y ofrecer contenido dinámico en lugar de páginas HTML con contenido estático. Los applets de Java son uno de los primeros intentos realizados para lograr este objetivo, pero se basan en el desarrollo sobre los clientes en la arquitectura cliente-servidor y no en los servidores. También la tecnología scripts CGI (Common Gateway Interface) fue empleada para generar contenido dinámico. Debido a la falta de escalabilidad de CGI así como las limitaciones sobre los scripts a desarrollar surgió la necesidad de desarrollar otras tecnologías para resolver estos inconvenientes. La tecnología de Java Servlet fue diseñada como un mecanismo portable para crear contenido web dinámico y orientado al usuario (dinámico, portable, escalable y personalizado) Qué es un servlet: Un servlet es una aplicación empleada para interactuar con el servidor de páginas o aplicaciones WEB utilizando el modelo de programación request-response. Desde el punto de vista de programación, es una clase del lenguaje de programación Java utilizada para extender (añadir nueva funcionalidad y aprovechar la ya existente) las capacidades de los servidores de páginas o aplicaciones WEB. Aunque los servlets pueden responder a cualquier tipo de requerimiento son primordialmente empleados en aplicaciones hosted por servidores WEB. La tecnología de Java servlets provee de clases para implementar servidores específicos para http. Los paquetes java que soportan la programación de los servlets, ofreciendo clases e interfaces java, son javax.servlet y javax.servlet.http. Todos los servlets deben implementar la interface servlet, la cual define un ciclo de vida del servlet y provee los métodos para implementarlo y manejarlo. Cuando se implementa un servicio genérico, la clase GenericServlet provista en el Java Servlet API puede ser utilizada o heredada (extendida en términos de Java). La clase HttpServlet provee métodos, como doget y dopost, para implementar servicios específicos a http. En este manual se cubrirán los conceptos y ejemplos necesarios para desarrollar servlets que generan respuestas a requerimientos de http. Conocimiento previo de http es necesario. LECCION 2 Ciclo de vida de un Servlet Introducción: El ciclo de vida de un servlet es administrado por el contenedor del servlet, el contenedor donde se encuentra la puesta en marcha del servlet. Cuando un requerimiento es asociado (mapeado) a un servlet, el contenedor ejecuta los siguientes pasos: 1. Si la instancia del servlet no existe, el contenedor Web: 1.1 Carga la clase servlet 1.2 Crea una instancia de la clase servlet 1.3 Inicializa la instancia del servlet a través del método init 2. Ejecuta el método service (un servicio), pasando los objetos request y response Cuando el contenedor de servlet requiera eliminar (remover) el servlet, éste finalizará el servlet empleando el método destroy de la clase servlet. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 3

4 Administrando y controlando los eventos de un ciclo de vida de un servlet: Se pueden monitorear los eventos asociados al ciclo de vida y responder a éstos a través de objetos listener. Los métodos de los listener se invocan cuando los eventos del ciclo de vida de un servlet ocurren. Para utilizar objetos listener, se debe definir la clase listener y especificar la clase listener. Definiendo la clase listener: La clase listener se debe definir como una implementación de la interfaz listener. En la siguiente tabla se muestran los eventos que pueden ser monitoreados y la interfaz correspondiente que debe ser implementada. Cuando un método de un listener es invocado, el recibe como parámetro un evento conteniendo la información del evento producido. Por ejemplo, los métodos de la interfaz HttpSessionListener reciben como parámetro un HttpSessionEvent el cual contiene un HttpSession. OBJETO EVENTO INTERFAZ LISTENER y CLASE EVENTO Web Context inicialización y destrucción javax.servlet.servletcontextlistener y ServletContextEvent Atributo añadido, eliminado o reemplazado javax.servlet.servletcontextattributelistener y ServletContextAttributeEvent Session Creación Invalidación Timeout Atributo añadido, eliminado o reemplazado javax.servlet.http.httpsessionlistener y HttpSessionEvent javax.servlet.http.httpsessionattributelistener y HttpSessionBindingEvent Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 4

5 Manejando errores: Cualquier número de excepciones pueden ocurrir cuando un servlet es ejecutado. El contenedor de web generará una página por defecto conteniendo el mensaje. Una excepción servlet ocurre cuando una excepción se produce, pero se debe indicar que el contenedor debe retornar una página específica de error para una excepción en particular. LECCION 3 Compartiendo información en componentes Webs Compartiendo información Componentes web, al igual que la mayoría de los objetos, interactúan y colaboran con otros objetos para realizar sus tareas. Existen varias alternativas para realizar ésto. Los componentes web pueden utilizar componentes privados como los JavaBeans, pueden compartir con objetos a través de atributos o métodos públicos, pueden emplear bases de datos y pueden invocar otros recursos web. La tecnología de servlets de Java ofrece un mecanismo que permite a un componente web invocar otros recursos web. Empleando Objetos con Alcance (Scope Objects) Los componentes web, colaborando entre sí, comparten información a través de objetos almacenados como atributos en objetos con alcance (Scope Objects). Estos atributos son accedidos a través de los métodos get o set de la clase representando el alcance. La siguiente tabla muestra estos objetos. Objeto con Clase Disponible en alcance web context javax.servlet.servletcontext Componentes web dentro de un web context session javax.servlet.http.httpsession Componentes web manejando un request perteneciente a una session request Subtipo de javax.servlet.servletrequest Componentes web manejando el request page javax.servlet.jsp.pagecontext La página jsp que crea el contexto Empleando Objetos con Alcance compartido ( multithreads ) En un servidor multitarea multithreaded es posible compartir recursos para ser accedidos de una manera concurrente. Más allá de los atributos de los objetos de alcance (scope object), lo recursos compartidos incluyen datos almacenados en memoria (contexto compartido) tales como instancias de clases y objetos externos como archivos, conexiones con las bases de datos y conexiones de redes. Acceso concurrente se presenta en muchas situaciones: Múltiples components web accediendo objetos almacenados en un web context Múltiples componentes web accediendo objetos almacenados en una session Múltiples tareas threads dentro de un componente web accediendo variables. Un contenedor web típicamente creará un thread para manejar cada request. Si se desea que una instancia de servlet maneje un solo request a la vez, el servlet puede implementar la interfaz SingleThreadModel. Si el servlet implementa esta interfaz, se garantiza que nunca más de un thread ejecutará concurrentemente el método de servicio del servlet. Un contenedor web puede implementar esta funcionalidad a través del acceso sincronizado a una instancia simple del servlet o manteniendo un pool de instancias de componentes web y controlando cada nuevo requerimiento como una instancia. Esta interfaz no controla los problemas de sincronización ocasionados cuando los componentes web acceden a recursos compartidos como variables static o objetos externos. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 5

6 LECCION 4 Inicializando un Servlet Una vez que el contenedor de web carga e instancia una clase del servlet y antes de comenzar a procesar los requerimientos de los clientes, el contenedor web inicializa el servlet. Este proceso puede ser personalizado permitiendo a un servlet realizar operaciones de inicialización como leer datos de configuración almacenados, inicializar recursos o ejecutar otras actividades que sólo se van a ejecutar una vez. Para personalizar la inicialización de un servlet se debe sobreescribir el método init de la clase servlet. Un servlet que no pueda completar este proceso de inicialización provocará una excepción del tipo UnavailableException. Ejemplo public class empleadoservlet extends HttpServlet { // campos de la clase //... int empid; // sobreescribiendo el método init public void init() throws ServletException { // código de inicialización // chequeo de condición de falla para disparar la excepción if (empid == -1) throw new UnavailableException("No existe ningún empleado"); LECCION 5 Requests y Responses Codificando métodos de servicios: Los servicios soportados por un servlets son implementados en los métodos de servicio service methods de un servlet genérico GenericServlet o de un servlet http HttpServlet o de cualquier protocolo específico que implemente la interfaz servlet. Estos métodos se conocen como los domethods y existen cinco posibilidades doget, dodelete, dooptions, dopost, doput y dotrace. En el resto de esta sección, el término método de servicio será utilizado para nombrar a cualquier método de la clase servlet que provee de un servicio a un cliente. El patrón general para un método de servicio es extraer información de un requerimiento (request), acceder a recursos externos y luego producir una respuesta (response) basada en esta información. En el caso de servlets http, el procedimiento correcto para producir la respuesta es primero llenar los encabezados de ésta (headers), luego producir un texto de salida (stream) para la respuesta y finalmente escribir el contenido de la respuesta en el texto de salida. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 6

7 Request: Un request contiene los datos envíados por el cliente al servlet. Todos los requests implementan la interfaz ServletRequest. Esta interfaz define métodos para acceder a la siguiente información: Parámetros: Los cuales son típicamente empleados para enlazar la información entre los clientes y los servlet Atributos de valor de los objetos: empleados típicamente para intercambiar información entre el contenedor del servlet y el servlet o entre otros servlets colaborativos Información conteniendo el protocolo utilizado para comunicar el request y el cliente y el servidor involucrado en el request Información relevante a la localización Por ejemplo en un servlet, el identificador de un empleado es incluido como un parámetro llamado Agregar de un request (más adelante se detallará cómo). El siguiente fragmento de código ilustra cómo emplear el método getparameter para obtener el identificador. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 7

8 Long idemp = request.getparameter("agregar"); También se puede extraer un stream de entrada del request e interpretar los datos (a través de un parsing). Para leer el stream como una cadena de caracteres se utiliza el objeto BufferedReader retornado por el método getreader del request. Para leer el stream como datos binarios se emplea el objeto ServletInputStream retornado por el método getinputstream. HTTP servlets reciben como parámetro un objeto HTTP request, HttpServletRequest, el cual contiene el URL del request, los encabezados del HTTP, y el string de consulta (query string), entre otros parámetros. El URL de un request HTTP se compone de las siguientes partes: path>?<query string> El campo request path se compone a su vez de los siguientes elementos: Context path: Una concatenación de un slash (/) con la raíz contextual de la aplicación de Java servlet. Servlet path: La sección del path que corresponde al alias del componente que activa el request. Este path comienza con un slash (/). Path info: La parte del request path que no es parte ni del context path ni del servlet path. Suponga que el contexto de la aplicación del servlet sea catemp y se tienen definidos los siguientes alias Patrón /emp/* /*.jsp Alias EmpServlet JspServlet Entonces ejemplos de request path se indican a continuación Request path Context Servlet path Path info path /catemp/emp/index.html catemp /emp /index.html /catemp/ayuda/ayuda.jsp catemp /ayuda/ayuda.jsp nill Strings de consulta ( query strings ) se componen de un conjunto de parámetros y valores de los parámetros. Parámetros individuales son tomados de un request con el método getparameter. Existen dos maneras de generar strings de consulta: Un string de consulta puede explícitamente aparecer en una página Web. Por ejemplo un html generado por un servlet podría contener el enlace Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 8

9 <a href="/datosemp/catemp?agregar= ">agregar a catalogo</a> Luego un servlet toma el parámetro agregar de la siguiente manera: Long idemp = request.getparameter("agregar"); Un string de consulta es añadido a un URL cuando un formulario con un método GET http es envíado. Por ejemplo, un servlet (llamado emisor) genera un formulario, luego un input de HTML (con un valor asociado) es añadido al URL que mapea a otro servlet (llamado receptor) y finalmente el servlet receptor extrae el valor empleando el método getparameter. Responses: Un response contiene información enviada del servidor hacia el cliente. Todas las response implementan la interfaz ServletResponse. Esta interfaz provee de métodos con la siguiente funcionalidad: Construir un stream de salida empleado para enviar data al cliente. Enviar datos en formato de carácter a través del objeto PrintWriter retornado por el método getwriter. Enviar datos en formato binario en un response con cuerpo MIME, utilizando el objeto ServletOutputStream retornado por el método getoutputstream. Mezclar datos binarios con datos de texto, por ejemplo para crear una response con múltiples partes. Indicar el tipo del contenido (por ejemlo, text/html), siendo retornado en el response. Un registro de los tipos de contenidos es administrado por Internet Assigned Numbers Authority (IANA) en: ftp://ftp.isi.edu/in-notes/iana/assignments/media-types Indicar cuando se coloca la salida en un buffer. Por defecto, cualquier contenido escrito en un stream de salida es enviado al cliente inmediatamente. Si se emplean buffers, el contenido es escrito completamente antes de ser enviado al cliente, dando mayor tiempo al servlet para colocar los códigos de estado, los encabezados o realizar un forward a otro recurso web. Actualizar información sobre localización. Objetos HTTP response, los cuales son de la clase HttpServletResponse, poseen campos representando encabezados HTTP tales como: Códigos de estado, los cuales son utilizados para indicar la razón por la cual un request no fue realizado satisfactoriamente. Cookies, empleadas para almacenar información específica de la aplicación en el cliente. En ocasiones, cookies son empleadas PARA mantener un identificador para realizar traza en una sección de usuario. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 9

10 A continuación se muestra el código en Java de un servlet que genera un response a través de una página HTML que despliega la información de un empleado. El servlet primero llena los encabezados del response, el tipo del contenido y el tamaño del buffer. El servlet almacena el buffer el contenido de la página. El método getwriter devuelve un objeto PrintWriter para el response. Para llenar el response, primero el servlet envía un requerimiento al servlet que genera los banners; esto permite incluir otros recursos en la respuesta. Luego el servlet obtiene la identificación del empleado y usa el identificador para obtener la información. Finalmente el servlet genera el HTML markup conteniendo la información del empleado y envía la respuesta al cliente invocando el método close sobre el PrintWriter. public class detempservlet extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Establece los encabezados antes de acceder al Writer response.setcontenttype("text/html"); response.setbuffersize(8192); PrintWriter salida = response.getwriter(); // Escribe el response salida.println("<html>" + "<head><title>+ messages.getstring("descripcionempleado") +</title></head>"); // Obtiene el dispatcher; toma el banner a ser mostrado RequestDispatcher dispatcher = getservletcontext(). getrequestdispatcher("/banner"); if (dispatcher!= null) dispatcher.include(request, response); //Toma el identificador del empleado a mostrar long idemp= request.getparameter("idemp"); if (idemp!= null) { // informacion acerca del empleado try { // implementado en la clase BDEmp detemp de = BDEmp.obtDetEmp (idemp); Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 10

11 ... //Mustra la información salida.println("<h2>" + de.obtnombre() + "</h2>" +... catch (Exception ex) { response.resetbuffer(); throw new ServletException(ex); salida.println("</body></html>"); salida.close(); LECCION 6 Invocando recursos Web externos Introducción: Los componentes web pueden invocar otros recursos Web de dos maneras: indirecto y directo. Un componente web invoca indirectamente otro recurso web cuando se coloca embebido en el contenido retornado a un cliente un URL que apunta a otro componente web. Un componente web también puede invocar directamente a otro recurso durante su ejecución. Existen dos posibilidades: a través de la inclusión del contenido de otro recurso o se puede realizar forward del requerimiento a otro recurso. Para invocar a un recurso disponible en el servidor donde se ejecuta un componente Web, primero se debe obtener el objeto RequestDispatcher empleando el método getrequestdispatcher("url"). Se puede obtener el objeto RequestDispatcher a partir de un request o a través del web context; sin embargo, los dos métodos se comportan ligeramente diferente. El método toma el camino ( path ) del recurso requerido como un parámetro. Un request puede tomar un camino relativo, pero el web context requiere un camino absoluto. Si el recurso no se encuentra disponible, o si el servidor no tiene implementado un objeto RequestDispatcher para el tipo de recurso, el método getrequestdispatcher devolverá null. El servlet programado debe estar preparado para manejar esta situación. Incluyendo otros recursos en el Response : Es muy frecuente y útil incluir otro recurso web, por ejemplo un banner o información de copyright, en la response enviada por un componente web. Para incluir otro recurso, se debe invocar el método include de un objeto RequestDispatcher: include(request, response); Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 11

12 Si el recurso es estático, el método include habilita las funciones programáticas de include en el lado del servidor. Si el recurso es un componente web, el efecto del método es enviar el request al componente web incluido, ejecutar el componente web, y luego incluir el resultado de la ejecución en el response producido por el servlet. Un componente web incluido tiene acceso al objeto request, pero se encuentra limitado en lo que puede realizar con el objeto response: Puede escribir en el cuerpo de un response y realizar commit del response No puede actualizar los headers o invocar a cualquier método (por ejemplo, setcoookie) que modifique los headers de la response. Por ejemplo, a continuación se muestra un un banner para una aplicación generado por servletbanner. Es importante destacar que los métodos doget y dopost son implementados porque el servletbanner puede ser despachado desde cualquiera de los dos métodos a través de un servlet que lo invoca. public class servletbanner extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter salida = response.getwriter(); salida.println("<body bgcolor=\"#ffffff\">" + "<center>" + "<hr> <br> " + "<h1>" + "<font size=\"+3\" color=\"#cc0066\">banner s </font>" + <img src=\"" + request.getcontextpath() + "/imagen.gif\">" + "<font size=\"+3\" color=\"black\">ejemplo</font>" + "</h1>" + "</center>" + "<br> <hr> <br> "); public void dopost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter salida = response.getwriter(); salida.println("<body bgcolor=\"#ffffff\">" + "<center>" + "<hr> <br> " + "<h1>" + "<font size=\"+3\" color=\"#cc0066\">banner's </font>" + <img src=\"" + request.getcontextpath() + Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 12

13 "/imagen.gif\">" + "<font size=\"+3\" color=\"black\">ejemplo</font>" + "</h1>" + "</center>" + "<br> <hr> <br> "); Ahora, cada servlet que desee incluir el resultado de la ejecución del servletbanner, emplea el siguiente código: RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher("/banner"); /* Directorio donde se encuentra el banner */ if (dispatcher!= null) dispatcher.include(request, response); Transfiriendo el control a otro componente Web: En una aplicación web podría ser necesario descomponer una tarea en sub-tareas (como en el caso de la programación estructurada); por ejemplo un componente web podría realizar un pre-procesamiento de un request y pasarle el control a otro componente web para generar el response. Para transferir el control a otro componente web, se debe invocar el método forward de un objeto RequestDispatcher. Cuando se le realiza forward a un request, el URL del request es actualizado hacia el path de la página a la cual se requiere realizar el forward. Si el URL original (antes del forward) es requerido para un futuro procesamiento, este puede ser almacenado como un atributo del request. En el siguiente ejemplo, se almacena la información del path del URL original, obtiene un RequestDispatcher del request, y luego realiza un forward a una página JSP otrorecurso.jsp. public class Despachador extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) { /* En el atributo pathurl, se podría utilizar cualquier nombre, se almancena el URL */ request.setattribute("pathurl", request.getservletpath()); RequestDispatcher desp = request. getrequestdispatcher("/otrorecurso.jsp"); if (desp!= null) desp.forward(request, response); public void dopost(httpservletrequest request, Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 13

14 ... LECCION 7 Accediendo el contexto Web El contexto donde se ejecuta un componente web es un objeto que implementa la interfaz ServletContext. Se puede obtener un contexto web con el método getservletcontext. El contexto web ofrece métodos para acceder a: Parámetros de inicialización Recursos asociados con el contexto web Atributos de los objetos Capacidades de registro de bitácora (logging) En el siguiente ejemplo se muestra un filtro que cuenta el número de accesos (hits a una página) empleando la información del contexto. El valor incrementado del contador es almacenado con el método log del contexto. public final class filtrocontador implements Filter { private FilterConfig conffiltro = null; public void dofilter(servletrequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {... StringWriter sw = new StringWriter(); PrintWriter esc = new PrintWriter(sw); ServletContext contexto = filterconfig. getservletcontext(); Counter contador = (Counter)contexto.... getattribute("contadoraccesos"); /* Atributo definido */ esc.println("el numero de accesos es: " +... contador.inccounter()); contexto.log(sw.getbuffer().tostring());... LECCION 8 Manteniendo el estado de un cliente Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 14

15 Introducción: Muchas aplicaciones requieren que una serie de requerimientos de un cliente puedan ser asociados y relacionados. Por ejemplo, las aplicaciones de compras de libros en línea conservan el estado de la mercancía colocada en la shopping list de un cliente para ser utilizada en futuros request. Las aplicaciones web deben ser responsables de mantener este estado, llamado una "seccion", debido a que el protocolo http es stateless. Para soportar aplicaciones donde el manejo de estados es necesario, la tecnología de Java Servlet ofrece un API para administrar "sessions" y permite varias políticas para implementar las "sessions". Accediendo a una "session" Las "sessions" son representadas por un objeto HttpSession. Una "session" es accedida empleando el método getsession del objeto request. Este método retorna la "session" actual asociada con éste request, en caso de que el request no tenga "session" una nueva "session" es creada. Como el método getsession podría modificar el encabezado del response (si cookies son empleadas como la política de traza de las "sessions"), este debe ser llamado antes de obtener un PrintWriter o un ServletOutputStream. Asociando atributos con una "session" Los atributos de un objeto pueden ser asociados con una "session" empleando el nombre. Estos atributos son accesibles por cualquier componente web perteneciente al mismo contexto web y se encuentra manejando un request que es parte de la misma "session". Suponga tiene una aplicación para compra de libros en línea y se tiene almacenado el shopping list como un atributo de la "session". Esto permite guardar los datos del shopping list de un request y los mismos se encuentren disponibles para un request a futuro. public class servletlibrosenlinea extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Obtiene la session y la shoppinglist HttpSession sess = request.getsession(); ShoppingList sl = (ShoppingList)sess. getattribute("lista");... // Determina el precio total de los libros en la lista double total = sl.gettotal(); Notificando objetos que se encuentran asociados con una "session" Dentro de una aplicación pueden ser notificados objetos web context objetos session listener, sobre los eventos producidos durante el ciclo de vida de un servlet. También es possible, notificar la los objetos sobre los eventos relacionados con una session como los siguientes: Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 15

16 Cuando un objeto es añadido a una sección o cuando un objeto es eliminado de una sección. Para recibir esta notificación, el objeto debe implementar la interfaz javax.http.httpsessionbindinglistener. Cuando la sección en la cual se asocia un objeto es activada o desactivada. Una sección será activada o desactivada cuando es movida entre máquinas virtuales o cuando es almacenada en almacenamiento externo (archivos o base de datos) o cuando es cargada a partir de almacenamiento externo. Para recibir esta notificación, el objeto debe implementar la interfaz javax.http.httpsessionbindinglistener. Administración de una sección Como un cliente HTTP no puede notificar la necesidad de finalizar una sección, cada sección tiene un timeout asociado de modo que los recursos puedan ser liberados reclaimed. El período de timeout puede ser accesado a través de los métodos getmaxinactiveinterval o setmaxinactiveinterval del objeto. Por ejemplo, en la aplicación de libros en línea se dispone de un servlet llamado servletfinalizar el cual realiza las operaciones de finalización de la aplicación. La sección se invalida utilizando el método invalidate. En este servlet se debe colocar la operación de cierre de la sección. public class servletfinalizar extends HttpServlet { public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // Obtiene la sección HttpSession sess = request.getsession(); // Finaliza la sección sess.invalidate();... Traza de una sección Un contenedor web puede utilizar varias políticas para asociar una sección con un usuario de la aplicación. Todas estas estrategias requieren el pasaje de un parámetro identificador entre el cliente y el servidor. El identificador puede ser mantenido en el lado del cliente como una cookie o el componente web puede incluir el identificador en cada URL que es retornado al cliente. En una aplicación donde se emplean objetos de sección, el programador debe asegurar que la traza de la sección se encuentra habilitada permitiendo a la aplicación sobrescribir los URL cuando el cliente coloque en off las cookies. Esto se efectúa invocando al método encodeurl(url) en todos los URL retornados por un servlet. Este método incluye el id de la sección en el URL únicamente si las cookies están desactivadas, en caso contrario devuelve el URL sin cambios. A continuación se muestra parte del código del método doget del servletmostrarlista de la aplicación de libros en línea, el cual codifica tres URLs al incio de la página de despliegue: Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 16

17 salida.println("<p> <p><strong><a href=\"" + response.encodeurl(request.getcontextpath() + "/catalogo") + "\">" + messages.getstring("continua comprando") + "</a> " + "<a href=\"" + response.encodeurl(request.getcontextpath() + "/salir") + "\">" + messages.getstring("salir de la aplicación") + "</a> " + "<a href=\"" + response.encodeurl(request.getcontextpath() + "/lista?limpiar=limpiar") + "\">" + messages.getstring("limpiar Lista") + "</a></strong>"); El URL para el caso de salir se formaría de la siguiente manera: Si las cookies se encuentran desactivadas, la sección es codificada en el URL. jsessionid=c0o7fszeb1 En caso de estar activadas, el URL simplemente contendría. LECCION 9 Finalizando un Servlet Introducción: Cuando un contenedor de servlet determina que un servlet debería ser removido de los servicios (por ejemplo cuando el contenedor requiere de recursos de memoria o cuando es finalizado shutdown ), el contenedor invoca el método destroy de la interfaz servlet. En este método, se liberan los recursos utilizados por el servlet y cualquier estado persistente es almacenado. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 17

18 public void destroy() { // se coloca el código Java para liberar los recursos Todos los métodos de servicios de un servlet deben ser completados cuando un servlet es removido, El servlet trata de asegurar esta culminación llamando al método destroy sólo después que todos los request de servicio han finalizado o cuando el período de time-out para el servlet finalice (cualquiera condición que ocurra primero). Cuando un servlet contenga request de servicios con largos tiempos de ejecución se recomienda utilizar las siguientes técnicas: Mantener traza de cuantos threads se encuentran ejecutándose concurrentemente con el método de servicio. Ofrecer un shutdown robusto programando el método destroy de modo tal que notifique a estos threads de larga duración sobre un posible shutdown o espere a que estos terminen. Programar los métodos de larga duración de modo de chequear por un shotdwon posible y en caso de ser necesario finalizar la ejecución, liberar los recursos y retornar el control de la ejecución. Realizando traza sobre servicios de request: Para realizar traza a servicios de request se debe agregar un campo en la clase servlet para contabilizar en número de métodos de servicio en ejecución. Este campo debe poseer métodos sincronizados para incrementar, decrementar y devolver el valor del contador. public class ejemploshutdown extends HttpServlet { private int contadorserv = 0;... // Métodos para el contador de servicios // Nótese que son sincronizados, multiples threads protected synchronized void metodoentrarservicio () { contadorserv++; protected synchronized metododejarservicio() { contadorserv--; protected synchronized int numservicios() { return contadorserv; Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 18

19 public void destroy() { // se coloca el código Java para liberar los recursos El método de servicio debe incrementar el contador de servicios cada vez que se ejecuta el servicio y decrementarlo cuando se termina la ejecución. En este caso se debe sobrescribir el método service de la subclase HttpServlet. Este método Nuevo debe llamar a super.service de modo de preservar la funcionalidad de los métodos originalmente descrita en los servicios. protected void service(httpservletrequest req, HttpServletResponse resp) throws ServletException,IOException { metodoentrarservicio(); try { // Ejecuta service del padre, httpservlet super.service(req, resp); finally { metododejarservicio(); Notificando métodos para el shutdown. Para implementar un shutdown robusto, el método destroy no debe liberar cualquier recurso compartido hasta que todos los request de servicio hayan sido completados. Una parte de este proceso consiste en chequear el contador de servicios indicado en el ejemplo anterior. La otra parte consiste en notificar a los métodos de servicio con largas ejecuciones que es tiempo de shutdown. Para realizar esta notificación otro campo es necesario. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 19

20 public class ejemploshutdown extends HttpServlet { private boolean tiemposhutdown;... //Métodos para tiemposhutdown protected synchronized void settiemposhutdown (boolean tsd) { tiemposhutdown = tsd; protected synchronized boolean istiemposhutdown () { return tiemposhutdown; Un ejemplo de un método destroy empleando estos campos para ofrecer un shutdown robusto se muestra a continuación: public void destroy() { /* Chequea si existen métodos de servicio en ejecución /* /* ejecutándose, en caso de ser cierto les notifica */ if (numservicios() > 0) { settiemposhutdown(true); /* Espera a que los servicios terminen*/ while(numservicios() > 0) { try { Thread.sleep(interval); catch (InterruptedException e) { Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 20

21 LECCION 10 Qué es JSP Introducción: La tecnología JSP (Java Server Pages) permite crear contenido Web con componentes estáticos y dinámicos. La tecnología JSP soporta las capacidades dinámicas de la tecnología de Java Servlet, pero además provee una manera natural para el manejo de contenido estático. Las principales características de la tecnología JSP son: Un lenguaje de programación para desarrollar páginas JSP, las cuales son documentos de texto para describir como procesar un request de un cliente para producir un response Constructores para acceder los objetos residentes en el servidor ( server-side objects ) Mecanismos para definir extensiones del lenguaje JSP Adicionalmente, la tecnología JSP ofrece un API utilizado para el desarrollo de contenedores Web. Qué es JSP: Una página JSP es un documento de texto conteniendo dos tipos de contenido: datos estáticos en una plantilla en cualquiera de los siguientes formatos HTML, SVG, WML, and XML; y elementos JSP para expresar el contenido dinámico. Páginas JSP: Una página JSP típica es una mezcla de texto en HTML con elementos JSP. Los documentos HTML poseen una estructura determinada por los tags (o marcadores) empleados, por ejemplo (<head>, <body>, entre otros) y por las instrucciones HTML para crear un formulario (<form>) y un menú (<select>). Las líneas en negrillas en el ejemplo, resaltan los constructores JSP: Directiva (<%@ page... %>), importan las clases en el paquete java.util, y actualizan el tipo de contenido a ser retornado por la página. El elemento <jsp:usebean... /> crea un objeto e inicializa una variable que apunta al objeto. Los scriptlets (<%... %> ). Las expressions (<%=... %>) The jsp:include element sends a request to another page (date.jsp) and includes the response in the response from the calling page. <%@ page import="java.util.*" %> <%@ page contenttype="text/html; charset=iso " %> <html> <head><title>fechas Locales</title></head> Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 21

22 <body bgcolor="white"> <jsp:usebean id="locales" scope="application" class="flocales"/> <form name="flocal" action="indice.jsp" method="post"> <b>local:</b> <select name=local> <% String localsel = request.getparameter("local"); Iterator i = locales.obtnomblocales).iterator(); while (i.hasnext()) { String local = (String)i.next(); if (localsel!= null && localsel.equals(local)) { %> <option selected><%=local%></option> <% else { %> <option><%=local%></option> <% %> </select> <input type="submit" name="enviar" value="get Date"> </form> <jsp:include page="fecha.jsp"/> </body> </html> Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 22

23 LECCION 11 Ciclo de vida de una página JSP Introducción: Una página JSP atiende a requerimientos request como un servlet (un proveedor de servicios). Por lo tanto, el ciclo de vida y muchas de las capacidades de las páginas JSP (en particular el contenido dinámico) son determinadas por la tecnología de Java Servlet. Cuando un requerimiento request es mapeado con una página JSP, el request es primeramente manejado por un servlet especial que chequea si la página JSP ha sido modificada. Si la página ha sido modificada, la página JSP es traducida en una clase servlet y esta clase es compilada. Durante la fase de desarrollo, una de las ventajas de JSP sobre servlets es que el proceso de construcción es realizado automáticamente. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 23

24 Traducción y Compilación: Durante la fase de traducción, cada tipo de contenido (estático y dinámico) es tratado de manera diferente. Los datos estáticos (plantilla o template) son transformados en código para agrupar los datos en un stream para ser envíados al cliente. Los elementos JSP son tratados de la siguiente manera: : Las directivas son empleadas para controlar como el contenedor Web traduce y ejecuta una página JSP. Los elementos de scripting son insertados en la clase servlet de la página JSP.. Elementos de la forma <jsp:xxx... /> son convertidos en llamadas a métodos de los componentes JavaBeans o invocaciones al API de Java Servlet. Una vez efectuada la traducción, el código es compilado en Java. Tanto las fases de traducción como de compilación pueden ocasionar errores, los cuales son observados solo cuando la página es requerida por primera vez. Si un error ocurre durante la fase de traducción (por ejemplo el traductor consigue un elemento JSP mal escrito), el servidor retornará un ParseException y el código fuente de la clase servlet se construirá vacío o incompleto. La última línea de este archivo indicará el elemento JSP incorrecto. Si un error ocurre cuando la página JSP está siendo compilada (por ejemplo, existe un error de sintaxis en un scriptlet), el servidor retornará un JasperException y un mensaje que indica el nombre del servlet de la página JSP y la línea donde se produjo el error. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 24

25 Una vez que la página JSP ha sido traducida y compilada, el servlet de la página JSP ejecuta el ciclo de vida de un servlet descrito anteriormente: 1. Si la instancia del servlet de la página JSP no existe, el contenedor Web: 1.1 Carga la clase servlet de la página JSP 1.2 Crea una instancia de la clase servlet 1.3 Inicializa la instancia del servlet a través del método jspinit 2. Ejecuta el método _jspservice (un servicio), pasando los objetos request y response Cuando el contenedor de servlet requiera eliminar (remover) el servlet, éste finalizará el servlet empleando el método jspdestroy de la clase servlet. Buffer intermedio: Cuando una página JSP es ejecutada, la salida escrita en el objeto response es almacenada automáticamente en el buffer intermedio. El tamaño del buffer puede ser cambiado con la siguiente directiva.: <%@ page buffer="none xxxkb" %> Un buffer de tamaño grande permite almacenar más contenido antes de ser enviado al cliente, de esta manera la página JSP dispondrá de más tiempo para preparar los códigos de status y los encabezados de las páginas o realizar el forward de otro recurso web. Un buffer pequeño reduce la carga de memoria del servidor y permite al cliente recibir de una manera más rápida la información. Manejando errores: Cualquier número de excepciones pueden dispararse cuando una página JSP es ejecutada. Para especificar que un contenedor web redireccionará el control a un página de errores si una excepción ocurre, se debe incluir la siguiente directiva al inicio de la página JSP: <%@ page errorpage="file_name" %> Ejemplo, <%@ page errorpage= pagerror.jsp %> El comienzo del archivo de manejo de errores, por ejemplo pagerror.jsp, indica que se encuentra sirviendo errores con la siguiente directiva: <%@ page iserrorpage="true false" %> Esta directiva permite que el objeto de la clase javax.servlet.jsp.jspexception se encuentre disponible en la página del error. Por lo tanto, se puede manipular la información explicativa de la causa del error. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 25

26 Inicializando y finalizando una página JSP: El proceso de inicialización de una página JSP puede ser personalizado customize para leer datos de configuración de un archivo o base de datos, inicializar recursos, y ejecutar otras acciones de inicialización. Esta personalización se realiza sobreescribiendo el método jspinit de la interfaz JspPage. LECCION 12 Objetos de JSP Contenido estático: En una página JSP se crea contenido estático simplemente editando el archivo en el formato de texto deseado. El tipo de formato puede ser uno de los siguientes: HTML, WML, y XML. El formato por defecto es HTML. Si se requiere utilizar otro formato distinto a HTML, se puede incluir una directiva de página con el atributo contenttype asignado al tipo de formato al principio de la página JSP. Por ejemplo, si se desea contenido en una página WML (Wireless Markup Language), se necesita incluir la siguiente directiva: <%@ page contenttype="text/vnd.wap.wml"%> Objetos en páginas JSP: En una página JSP se crea contenido dinámico mediante el acceso de objetos del lenguaje de programación Java. Dentro una página JSP se puede acceder una variedad de objetos, incluyendo los componentes de JavaBeans o los enterprise beans. La tecnología JSP automáticamente ofrece un conjunto de objetos (implícitos, pero también pueden ser creados objetos específicos de la aplicación). Objetos específicos de la aplicación: Cuando sea posible, el código la aplicación debería ser encapsulado en objetos de modo que los diseñadores de la página JSP se enfoquen en la capa de presentación y no en la de lógica del negocio. Los objetos pueden ser creados en el lenguaje de Programación Java por programadores expertos en el lenguaje así como en el acceso a Bases de Datos y en otros servicios. Existen cuatro maneras de crear objetos en una página JSP: instancias de clases en la clase servlet de la página JSP son creados en declaraciones y utilizados a través de scriptlets y expresiones. Variables locales en la clase servlet de la página JSP son creados y utilizados a través de scriptlets y expresiones. Atributos del alcance objetos (scope objects) son creados y utilizados a través de scriptlets y expresiones. Componentes Java Beans pueden ser creados y accedidos dentro de elementos JSP. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 26

27 LECCION 13 Variables Las variables en JSP son declaradas en las declaraciones JSP. Una declaración en JSP es empleada para declarar variables y métodos en el lenguaje de scripts de la página. La sintaxis para una declaración es como sigue: <%! Declaración en el lenguaje de scripting %> Cuando el lenguaje de scripting es el lenguaje de programación Java, las variables y los métodos en las declaraciones JSP se convierten en declaraciones en la clase servlet de la página JSP. En el siguiente ejemplo se crea una variable de instancia llamada cat1 de la clase Catalogo. <%! private Catalogo cat1; %> LECCION 14 Objetos Implícitos Los objetos implícitos son creados por automáticamente por el contenedor de los servlets (se llama por lo general contenedor Web) manipulando información particular de un requerimiento (request), página (page) o aplicación (application). Muchos de estos objetos son definidos por la tecnología de Java servlets manejada por JSP. A continuación se muestra una tabla conteniendo estos objetos Objetos Implícitos Variable Clase Descripción application javax.servlet.servletcontext El contexto para las páginas JSP (servlets) y para cualquier componente Web contenido en la misma aplicación. config javax.servlet.servletconfig Información de inicialización para los servlets de las páginas JSP. exception java.lang.throwable Sólo puede ser accedido desde una página de errores. out javax.servlet.jsp.jspwriter El stream de salida. page pagecontext java.lang.object javax.servlet.jsp.pagecontext La instancia del servlet de la página JSP del requerimiento actual. No es muy utilizada por los autores de páginas JSP. El contexto para la página JSP. Provee un API único para manejar varios de los atributos cuyo alcance puede ser compartido. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 27

28 Este API es usado extensivamente cuando son implementados los tag handlers. request response Subclase de javax.servlet.servletrequest Subclase de javax.servlet.servletresponse El objeto request provocando (disparando) la ejecución de la página JSP. La respuesta response enviada al cliente. No es muy utilizada por los autores de páginas JSP. session javax.servlet.http.httpsession El objeto para manejar las secciones de los clientes LECCION 15 Operadores Los Operadores son los constructores de programación más básicos en los lenguajes de programación. En esta sección se utilizará el termino operador o JSP scripting elements (elementos de script) de manera indiferente. Los elementos de script son utilizados para crear y acceder a los objetos, definir los métodos y controlar el flujo de control de las operaciones. En JSP los elementos de Script son los operadores soportados por Java, Java soporta API especiales para el manejo de JSP. Uno de los objetivos de la tecnología de JSP es separar los datos estáticos de las páginas del código necesario para generar el código dinámico. Por lo tanto el uso de los elementos de script es la manera más adecuada de lograr este objetivo. La utilización de los scripts también puede ser sustituida por el empleo de los tags personalizados. La tecnología de JSP permite al contenedor de la página el soporte de cualquier lenguaje de scripting con acceso a objetos Java. Si se desea utilizar otro lenguaje diferente al lenguaje por defecto (Java) se debe especificar la siguiente directiva al principio de la página JSP. <%@ page language="scripting language" %> Los elementos de script son convertidos a instrucciones del lenguaje de programación en la clase representando al servlet de JSP, el programador debe indicar las clases y los paquetes utilizados por la página JSP. Si el lenguaje de programación es Java, se deben importar las clases o los paquetes con la siguiente directiva de página: <%@ page import="nombrepaquete.*, nombreclase" %> Por ejemplo una página.jsp requiere utilizar los paquetes java.util y java.lang. <%@ page import="java.util.*, java.lang.*" %> Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 28

29 En JSP también se pueden utilizar expresiones. Una expresión es utilizada para insertar el valor de una expresión del lenguaje de la página JSP (en la mayoría de los casos Java), convertida en un string, en el stream enviado al cliente. En el caso de utilizarse Java, la expresión es transformada en una instrucción convirtiendo el valor de la expresión en un objeto String y los inserta explícitamente en el objeto de salida. La sintaxis de una expresión es como se indica: <%= expressión en el lenguaje de scripting %> El siguiente ejemplo devuelve el número de ítems contenidos en un carro de compras: <%@ page import="java.util.*" %> <%@ page contenttype="text/html; charset=iso " %> <html> <% int num = carro.getnumerodeitems (); if (num > 0) { %> Las expresiones son utilizadas para insertar el valor de la variable num (por ejemplo) en la salida de un stream : <font size="+2"> <%=messages.getstring("contenidoscarro")%> <%=num%> <%=(num==1? <%=messages.getstring("item")%> : <%=messages.getstring("contenidoscarro "))%></font> La tercera modalidad de manejar operadores en JSP es a través de los scriptles. Un scriptlet en JSP es utilizado para contener cualquier fragmento de código válido por el lenguaje utilizado en la página. La sintaxis de un scriptlet es la siguiente: <% %> instrucciones del lenguaje Si el lenguaje de scripting es Java, el scriptlet es transformado en un fragmento de instrucciones en lenguaje Java y es insertado en un método de servicio del servlet de la página JSP. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 29

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

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

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

Más detalles

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

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

Más detalles

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

HTTP, CGI, Applets y Servlets

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

Más detalles

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

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

Más detalles

Curso Java Web (JSP's/Servlets)

Curso Java Web (JSP's/Servlets) Curso Java Web (JSP's/Servlets) JSP's ("Java Server Pages") Composición Un JSP ("Java Server Page") es uno de los componentes más básicos empleados para aplicaciones de Servidor en Java. Su composición

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

Laboratorio de Aplicaciones Telemáticas

Laboratorio de Aplicaciones Telemáticas Java Server Pages (JSP) Laboratorio de plicaciones Telemáticas Jesús rias Fisteus jaf@it.uc3m.es Curso 2007/2008 Edited with emacs + LT E X+ prosper Universidad Carlos de adrid V E S E Java Server Pages

Más detalles

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

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

Más detalles

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de 2006. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de 2006. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de abril de 00 input, output En pascal input, output program holamundo (input, output); var nombre : String; begin

Más detalles

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

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

Más detalles

Modelo de Objetos Distribuidos

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

Más detalles

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

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

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

J2EE Java 2 Enterprise Edition

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

Más detalles

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

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

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

Más detalles

Tema 1. Introducción a JAVA

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

Más detalles

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

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

Más detalles

Objetivo de aprendizaje del tema

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

Más detalles

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 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

Seguridad de la aplicación para servlets y JSP (página activas java)

Seguridad de la aplicación para servlets y JSP (página activas java) Seguridad de la aplicación para servlets y JSP (página activas java) Autenticación de Servlets (java) Usuarios y roles. Autenticación declarativa. Portabilidad Tipos de autenticación Básica. Digest. Basada

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

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Ejemplos de Servlet y JSP Web Application Development

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

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

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

JSP(JAVA SERVER PAGES)

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

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

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

SERVLETS. Aplicaciones Distribuidas

SERVLETS. Aplicaciones Distribuidas SERVLETS Aplicaciones Distribuidas Contenido Definición. Framework Servlet. Ciclo de vida. Ejemplo. Procesamiento Petición. Generación de la Respuesta. Sesiones. Cookies. Colaboración entre servlets. Otros

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio Fecha de efectividad: CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2003-1 4599 Base de Datos II PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado en Sistemas Computacionales

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio CARRERA Lic. En Sistemas Computacionales PRÁCTICA No. 12 PLAN DE ESTUDIO LABORATORIO DE NOMBRE DE LA PRÁCTICA 1 INTRODUCCIÓN CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA 2003-1 5038 Programación Orientada

Más detalles

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

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

Más detalles

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

Tema 4: Tecnologías Web Java

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

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

Workflows? Sí, cuántos quiere?

Workflows? Sí, cuántos quiere? Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención

Más detalles

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

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):

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

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. 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.

Más detalles

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

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

Más detalles

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

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

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

Implementando nuestro primer servlet

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

Más detalles

Gestión de la Configuración

Gestión de la Configuración Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de

Más detalles

XPERTO EN DISEÑO DE PÁGINAS WEB

XPERTO EN DISEÑO DE PÁGINAS WEB Curso ICA de: EXPERTO EN DISEÑO DE PÁGINAS WEB Módulo 1: Program. cliente: JavaScript Estudia el lenguaje JavaScript para crear guiones o scripts que se incluyen en las páginas web y que son ejecutados

Más detalles

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

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,

Más detalles

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript.

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript. Descripción: 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 ASP.NET y el servidor

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

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

Introducción al desarrollo web (idesweb)

Introducción al desarrollo web (idesweb) Introducción al desarrollo web (idesweb) Práctica 8: PHP 2 (cookies y sesiones) 1. Objetivos Conocer el concepto de cookie y sus posibles usos. Aprender a utilizar las cookies con PHP. Conocer el concepto

Más detalles

Gestión de Oportunidades

Gestión de Oportunidades Gestión de Oportunidades Bizagi Suite Gestión de Oportunidades 1 Tabla de Contenido CRM Gestión de Oportunidades de Negocio... 4 Elementos del Proceso... 5 Registrar Oportunidad... 5 Habilitar Alarma y

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

Análisis y diseño del sistema CAPÍTULO 3

Análisis y diseño del sistema CAPÍTULO 3 Análisis y diseño del sistema CAPÍTULO 3 36 CAPÍTULO 3 Análisis y diseño del sistema En este capítulo se pretende realizar un análisis detallado de los requerimientos del software a desarrollar para la

Más detalles

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra Cómo gestiono el Plan Anual de Adquisiciones de mi Entidad en el SECOP II? Crear equipo Crear Plan Anual de Adquisiciones Publicar Plan Anual de Adquisiciones Modificar Plan Anual de Adquisiciones Buscar

Más detalles

CAPÍTULO 14. DESARROLLO

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

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS Versión 1.0 Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Servicio de SMS Cliente NORMATIVA ATLAS Arquitectura

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

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

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

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

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

Más detalles

Transacciones: 2PC y 3PC. Aplicaciones de Internet: HTTP/Applets, HTTP/GCI y Java Servlets

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,

Más detalles

Servidores Web (II) Contenidos

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

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa Documentos de Proyecto Medusa Documentos de: Serie: Manuales Servicio de Alta, Baja, Modificación y Consulta del documento: Fecha 22 de febrero de 2007 Preparado por: José Ramón González Luis Aprobado

Más detalles

PROGRAMACIÓN JEE CON SERVLETS

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

Más detalles

Diseño Y Aplicaciones de Sistemas Distribuidos. Servlets. Joan Vila

Diseño Y Aplicaciones de Sistemas Distribuidos. Servlets. Joan Vila Diseño Y Aplicaciones de Sistemas Distribuidos Servlets Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Qué es un servlet? Son una forma de

Más detalles

JavaScript como Orientación a Objetos

JavaScript como Orientación a Objetos Gustavo Lacoste (gustavo@lacosox.org) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Manual de Integrador.NET

Manual de Integrador.NET Manual de Integrador.NET viafirma platform v3.5 ÍNDICE 1. INTRODUCCIÓN... 5 1.1. Objetivos... 5 1.2. Referencia... 5 2. GUÍA RÁPIDA... 5 2.1. Añadir las dependencias necesarias... 5 2.2. Página de acceso

Más detalles

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1 MANUAL DE USUARIO Webservice simple para la exportación rápida de información proveniente de una base de datos Versión 0,1,1 Jorge Iván Meza Martínez INTRODUCCIÓN Esta aplicación permite

Más detalles

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

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

Más detalles

EXTENSIÓN DE UML PARA APLICACIONES WEB

EXTENSIÓN DE UML PARA APLICACIONES WEB EXTENSIÓN DE UML PARA APLICACIONES WEB 1. Descripción Esta extensión de UML define un conjunto de estereotipos, valores etiquetados y restricciones que nos permiten modelar aplicaciones web. Los estereotipos

Más detalles

FSx-Connector Guía rápida del Módulo pcron (Tareas Programadas) Créditos

FSx-Connector Guía rápida del Módulo pcron (Tareas Programadas) Créditos Este documento es una Guía resumida del Módulo pcron (Tareas Programadas), que es una extensión del Conector FSx-Connector entre FactuSol y una Tienda en Internet basada en PrestaShop. Vea también: www.factusol-prestashop.es.

Más detalles

Introducción a las Redes de Computadoras. Obligatorio 2 2011

Introducción a las Redes de Computadoras. Obligatorio 2 2011 Introducción a las Redes de Computadoras Obligatorio 2 2011 Facultad de Ingeniería Instituto de Computación Departamento de Arquitectura de Sistemas Nota previa - IMPORTANTE Se debe cumplir íntegramente

Más detalles

abacformacio@abacformacio.com

abacformacio@abacformacio.com Programación de 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

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

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

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

Más detalles

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

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO PRÁCTICA 4: Implementación de un Cliente de Correo

Más detalles

Sistemas de Información 12/13 Ejercicios Tecnologías Web

Sistemas de Información 12/13 Ejercicios Tecnologías Web 12/13 Ejercicios Tecnologías Web Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción sesiones y cookies con Servlets Ejercicio 1: Preguntas

Más detalles

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

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

Más detalles

Curso de 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

Administración de Catálogo DNS CURSO: ADMINISTRADOR DE PORTALES

Administración de Catálogo DNS CURSO: ADMINISTRADOR DE PORTALES Administración de Catálogo DNS CURSO: ADMINISTRADOR DE PORTALES Administración del Catálogo DNS. Curso: Administrador de Portales Fondo de Información y Documentación para la Industria Av. San Fernando

Más detalles

Sincronización del Servidor.

Sincronización del Servidor. Sincronización del Servidor. Versión 1.0 03/05/05 Fecha Jose Autor Manuel Viejo Lobato http://ars.viejolobato.com Página 1 de 5 Índice. 1. Introducción... 3 2. Búsqueda de elementos de workflow por nombre....

Más detalles

CAPÍTULO 3 VISUAL BASIC

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

Más detalles

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

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

Más detalles

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) 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

Más detalles

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

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

Más detalles