SERVLETS CÁTEDRA DE PROGRAMACIÓN AVANZADA. Ing. Mario Bressano & Luciano Diamand ENVÍO 04

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

Download "SERVLETS CÁTEDRA DE PROGRAMACIÓN AVANZADA. Ing. Mario Bressano & Luciano Diamand ENVÍO 04"

Transcripción

1 SERVLETS 2012 CÁTEDRA DE PROGRAMACIÓN AVANZADA Ing. Mario Bressano & Luciano Diamand ENVÍO 04

2 Qué es un Servlet? Interacción en Internet Cuando vamos a un restaurante, el mozo toma el pedido y se lo pasa al personal de la cocina. Al completarse el pedido, el mozo trae la comida. Las actividades que se desarrollan en la cocina, son invisibles para los que realizaron el pedido. La cocina, al igual que la web, opera según un modelo cliente/servidor. Al escribir la dirección de un sitio web o una URL en un navegador, o cliente, se inicia una petición al servidor que almacena al sitio. Cualquier acción que realice el servidor es transparente para los visitantes del sitio. En una arquitectura cliente/servidor típica de 2-capas, el contenido del sitio web (la capa de presentación del sitio web) como las páginas HTML, los servlets, las JSP, las ASP, software de correo, los scripts CGI, etc., se almacenan en el servidor web. Los sistemas de 2-capas más viejos, estaban hechos de un servidor web o contenedor, y el navegador. Figura 1: Arquitectura 2-capas (Cliente/Servidor) El servidor de aplicaciones es una extensión del modelo cliente/servidor 2-capas a una aproximación de N-capas. El servidor de aplicaciones tiene un servidor o contenedor web integrado y un contenedor de aplicaciones. Un ejemplo es el modelo de aplicaciones J2EE (Edición Empresarial de Java 2). Este modelo es el implementado en servidores de aplicación como el WebSphere de IBM, el BEA WebLogic, Tomcat del Proyecto Jakarta, Sun One Aplication Server; Internet Information Server de Microsoft, etc. Página 2 de 36

3 Figura 2: Arquitectura de N-capas La aproximación de N-capas es ideal para la generación de contenido dinámico. Los Servlets de Java, que heredan las características de Java y más, han asumido un papel prominente en los servidores de aplicaciones. Qué son los Servlets de Java? En Java podemos trabajar con Servlet y Java Server Pages (JSP). Los últimos son utilizados cuando la mayoría del contenido que se envía al cliente es texto estático, marcas y solo una pequeña parte de contenido dinámico. En cambio los servlets, son utilizados cuando la cantidad de texto estático y marcas es pequeño. Hay ocasiones en el que el servlet no produce contenido y solo se limita a llamar a otro servlet o JSP. Podemos decir que los Servlets son componentes del servidor. Estos componentes pueden ser ejecutados en cualquier plataforma o en cualquier servidor debido a la tecnología Java que se usa para implementarlos. Los Servlets incrementan la funcionalidad de una aplicación web. Se cargan de forma dinámica por el entorno de ejecución Java del servidor cuando se necesitan. Cuando se recibe una petición del cliente, el contenedor/servidor web inicia el servlet requerido. El Servlet procesa la petición del cliente y envía la respuesta de vuelta al contenedor/servidor, que es enrutada al cliente. La palabra Servlet deriva de applet; ésta se refiere a objetos (programas) que se ejecutaban en el contexto de un navegador, mientras que el servlet lo hace en el servidor. Página 3 de 36

4 Figura 3: Modelo de respuesta a peticiones HTTP La interacción cliente/servidor basada en Web usa el protocolo HTTP. EL protocolo HTTP es un protocolo sin estados basado en un modelo de petición y respuesta con un número pequeño y finito de métodos de petición como GET, POST, HEAD, OPTIONS, PUT, TRACE, DELETE, CONNECT, etc.. La respuesta contiene el estado de la respuesta y meta-información describiendo dicha respuesta. La mayor parte de las aplicaciones web basadas en servlets se construyen en el marco de trabajo del modelo petición/respuesta HTTP. Los Servlets permiten: 1- Leer datos enviados por los usuarios (formularios web o subprogramas applet-) 2- Buscar cualquier tipo de información respecto a la petición HTTP (nombre del host, cookies) 3- General resultados en una conexión a la Db por medio de CORBA (Common Object Request Broker Architecture arquitectura común de intermediarios en peticiones a objetos) O RMI (Remote Method Invocation Llamada a métodos remotos) la diferencia consiste en el que el primero permite llamar aplicaciones escritas en otros lenguajes) 4- Dar formato a los resultados 5- Establecer parámetros HTTP adecuados a la respuestas 6- Devolver el documento al cliente. Comparación con los CGI (Interfaz de compuerta común) a- EFICIENTES: Pues en los CGI cada petición genera un proceso b- ADECUADOS: Analizan y decodifican automáticamente código HTML, cookies, rastrear sesiones, etc. c- PODEROSOS: Se comunican directamente con el servidor web Página 4 de 36

5 d- TRANSPORTABLES: Al estar escritos en Java, poseen un código estándar. e- SEGUROS: Son ejecutados por la máquina virtual con su respectiva seguridad. f- ECONÓMICOS: Para ejecutarse no requiere software propietario. Requerimientos de Ejecución de los Servlets Java 1. Los Servlets de Java requieren algún conocimiento previo de Java y HTML 2. Las aplicaciones web y las páginas web que requieran iniciación de servlets deben ejecutarse en servidores web con contenedores web integrados, como el servidor web iplanet o un contenedor solitario de servlets como el Tomcat. Los Servlets también pueden ejecutarse en servidores de aplicación con contenedores web integrados como el Servidor BEA WebLogic. 3. El API Servlet (que tratemos de entender en breve) suele estar mayoritariamente integrado en el servidor/contenedor web. El contenedor/servidor logra esto último implementando la especificación Java Servlet 2.1 o Una vez que el contenedor/servidor básico se ha bajado y configurado, el siguiente paso es entender la programación de servlets. El API Servlet tiene dos paquetes, el javax.servlet, que tiene clases y paquetes independientes de protocolos, y el javax.servlet.http, que es más específico para el protocolo HTTP. Estructura del Servlet y Ciclo de Vida Antes de meternos en el ciclo de vida de los servlets, necesitamos comprender las clases básicas y los interfaces usados en la implementación del servlet. Todos los servlets implementan a la interfaz Servlet. El ciclo de vida comienza cuando el servlet se carga en memoria, se invoca a INIT, luego a SERVICE (por cada petición uno, generando un subproceso ES UNA DIFERENCIA CON EL CGI) y luego al finalizar DESTROY. Public Interface Servlet Todo servlet debe directa o indirectamente implementar este interfaz. Como cualquier otro interfaz de Java, este es también una colección de declaraciones vacías de métodos. Los siguientes métodos están declarados en el interfaz Servlet. Página 5 de 36

6 1. public abstract void init (ServletConfig config) throws ServletException. El método init se usa para inicializar los parámetros proporcionados por el objeto ServletConfig. Se invoca sólo una vez, a menos que el servlet sea reiniciado si se destruye y se vuelve a cargar. El método init es el lugar en el que inicializar los parámetros de configuración como la conexión con una base de datos, la inicialización de archivos y otros valores de entorno. Ninguno método del servlet puede ser invocado a no ser que el servlet esté inicializado mediante el uso del método init(). 2. public abstract ServletConfig getservletconfig () Este método proporciona el objeto ServletConfig para la inicialización de los parámetros del servlet. Se pueden crear parámetros adicionales especificándolos en el archivo servlet.properties. Una vez que hayan sido especificados en este archivo, se puede acceder a ellos usando el objeto ServletConfig. 3. public abstract void service (ServletRequest req, ServletResponse res) throws ServletException, IOException. El método service es el punto esencial del modelo petición respuesta del protocolo HTTP. Recibe una petición del cliente en forma de objeto ServletRequest. Los parámetros del cliente son pasados junto al objeto de petición (aunque existen otras formas de enviar parámetros desde el cliente al servlet, por ejemplo, usando cookies o por medio de una reescritura del URL). La respuesta resultante se envía al cliente usando el objeto ServletResponse. 4. public abstract String getservletinfo() Este método se usa para la extracción de metadatos del servlet, como por ejemplo el autor, la versión del servlet, y otra información concerniente al copyright. El método tendrá que ser redefinido dentro del servlet para que devuelva esta información. 5. public abstract void destroy () El método destroy se invoca para liberar todos los recursos solicitados como la base de datos, y otros recursos del servidor. También se encarga de la sincronización de cualquier hilo pendiente. Este método se llama una sola vez, automáticamente, como el método init. Página 6 de 36

7 La clase GenericServlet proporciona una implementación básica del interfaz Servlet. Para escribir un servlet especificamente para el protocolo HTTP, se usa la clase HTTPServlet, que extiende a Generic Servlet. 1. El método destroy se invoca para liberar todos los recursos solicitados como la base de datos, y otros recursos del servidor. También se encarga de la sincronización de cualquier hilo pendiente. Este método se llama una sola vez, automáticamente, como el método init. La clase GenericServlet proporciona una implementación básica del interfaz Servlet. Para escribir un servlet especificamente para el protocolo HTTP, se usa la clase HTTPServlet, que extiende a Generic Servlet. Figura 4: Clases Relevantes de Servlets e Interfaces. Como se ha tratado previamente, el ciclo de vida de los eventos para un servlet se especifica en el interfaz javax.servlet.servlet. Todos los servlets siguen el modelo del ciclo de vida. El contenedor web tiene la responsabilidad de crear una instancia del servlet y de invocar al método init (1). Si un cliente ha enviado una petición al contenedor web, entonces, esa petición se pasa al método servicio del servlet (2), y se envia una respuesta de vuelta al contendor web (3). Finalmente, cuando el servlet haya finalizado su propósito, el contenedor web invoca al método destroy (4). Página 7 de 36

8 Figura 5: Ciclo de Vida del Servlet web.xml. web.xml es un archivo escrito en XML que describe diversas características del archivo WAR, a continuación se describen sus elementos básicos. <web-app> <servlet> <servlet-name>hola</servlet-name> <servlet-class>com.osmosislatina.saludos</servlet-class> </servlet> <servlet-mapping> <servlet-name>hola</servlet-name> <url-pattern>/visitas</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hola</servlet-name> <url-pattern>/despedida</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hola</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> Página 8 de 36

9 <welcome-file>bienvenida.jsp</welcome-file> </welcome-file-list> </web-app> El primer elemento <web-app> indica el inicio de la aplicación, es dentro de este elemento que se definen todos los elementos restantes. El elemento <servlet> define las características de un Servlet y a su vez está compuesto por los elementos <servlet-name> y <servlet-class> que indican un nombre corto para el Servlet así como el nombre de la Clase Java que contiene el Servlet respectivamente. En este caso se indica que la Clase llamada com.osmosislatina.saludos (encontrada dentro de /WEB-INF/classes) será denominada con el nombre hola. Posteriormente se define el elemento <servlet-mapping> el cual define la ubicación en términos de directorios de un sitio (URL), esto es, el elemento <servletname>hola</servlet-name> esta indicando que el Servlet llamado hola será accesado cada vez que se accese el directorio base /visitas. Nótese que existen otras dos declaraciones con el Servlet hola, lo anterior permite que un mismo Servlet sea accesado de diversos directorios en un sitio, en este caso se esta indicando que toda solicitud destinada para los URL's /visitas, /despedida y todas aquellas terminadas en *.do sean procesados por el Servlet en cuestión (hola). Finalmente el elemento <welcome-file-list> indica que cuando se solicite cualquier directorio sin indicar un archivo en especifico se envíe el archivo llamado: index.jsp, index.html o index.htm, donde el primero tiene preferencia en caso de existir más de un archivo en la lista. Lo anterior son solo los parámetros básicos utilizados en web.xml, a continuación se describen otros elementos que pueden ser empleados en web.xml EJEMPLO DE SERVLETS: Ejemplo 1: Servlet sencillo que va a generar solo texto: import java.io.printwriter; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class PrimerServlet extends HttpServlet { Página 9 de 36

10 private static final long serialversionuid = 1L; public void doget(httpservletrequest pedido, HttpServletResponse respuesta) throws ServletException, IOException { PrintWriter out= respuesta.getwriter(); out.println("este es mi primer Servlet que genera solo texto"); private static final long serialversionuid = 1L: Las clases que implementan este interfaz son susceptibles de ser serializadas (es decir, las instancias de estas clases pueden guardarse y leerse en/de disco -o cualquier otro dispositivo de entrada/salida-). Simplificando mucho la lógica de serialización, lo que sucede es que los atributos del objeto se convierten en cadenas de bytes y se guardan en el disco. Para leer un objeto, se leen las cadenas de bytes y se reconstruye el objeto a partir de ellos. Imagina que tienes una aplicación que serializa en disco una serie de objetos al cerrarse y los lee en la siguiente ejecución para mantener los valores que tenían antes. En un momento dado, modificas una de las clases añadiendo un atributo nuevo. Al ejecutar esta versión de la aplicación por primera vez, intentará leer de disco los objetos que fueron serializados... pero falta un campo en los objetos de la clase que has modificado (cuando se serializaron el campo no existía) y tu aplicación "teóricamente" va a leer datos corruptos puesto que "teóricamente" no puede saber que la clase ha cambiado (veremos que si puede saberlo). El campo serialversionuid es el número de versión de la clase. Cuando el objeto es serializado lo primero que hace es escribir el serialversionuid. Si al leer el objeto se dectecta que el valor del serialversionuid guardado no coincide con el actual se lanza una exception InvalidClassException, de modo que el programador puede tratar la excepción de manera adecuada (por ejemplo, creando un objeto por defecto para substituir al que no puede leerse). Para que este mecanismo funcione bien, el programador debe proveer el campo private static final long serialversionuid en todas las clases que implementen Serializable y en todas las subclases de ellas (este es tu caso). El valor es indiferente, pero debes actualizarlo cada vez que modificas tu clase añadiendo o quitando atributos (lo más sencillo en incrementarlo en 1). Si el programador no indica este campo la JVM añade uno por su cuenta, sin embargo no es demasiado conveniente permitir esto (al cambiar ligeramente el programa o cambiar la JMV podría cambiar el valor y darte una desagradable sorpresa) CLASE HttpServlet Página 10 de 36

11 public class PrimerServlet extends HttpServlet {: Los servlets basados en Web generalmente extienden a la clase HttpServlet que redefine el método Service para las dos peticiones más comunes del HTTP: get y post. Una petición GET obtiene información del servidor recuperando la misma en un documento HTML o una imagen. En cambio una petición POST publica o envía datos de un servidor. Dentro de la clase HttpServlet existen estos métodos: 1. dodelete (borrar archivos) 2. dohead (procesar encabezados) 3. dooptions (devuelve información al cliente sobre el servidor) 4. doput (almacena archivos) 5. dotrace (depuración) public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException {: Los métodos doget y dopost reciben argumentos HttpServletRequest request, HttpServletResponse response. Interfaz HttpServlet request El servidor web que ejecuta al servlet crea un objeto de este tipo que se lo pasa al método Service que a su vez se lo pasa a doget o dopost según corresponda, conteniendo la petición del cliente. Por otra parte se invoca throws ServletException, IOException que se ejecutarán: String getparameter(string nombre): Nos devuelve el valor del parámetro cuyo nombre le indicamos. Si la variable no existiera o no tuviese ningún valor, devolvería null Enumerate getparameternames(): Nos devuelve una enumeración de los nombres de los parámetros que recibe el servlet. Enumerate getparametervalues(string): Nos devuelve los valores que toma un parámetro dado, esto es útil para listas de selección múltiple donde un parámetro tiene más de un valor. Cookies[].getCookies(): Devuelve arreglo con todos los valores de las cookies que identifican cliente de una manera única con el servidor Interfaz HttpServlet response. Página 11 de 36

12 Esta interfaz permite dar respuesta al cliente. Aquí encontramos: void.addcookie (Cookie, cookie): agrega objeto cookie al encabezado de respuesta del cliente ServletOutputStream.getOutputStream(): Genera un flujo de salida en bytes. PrintWriter.getWriter (): Flujo de salida en caracteres. void setcontenttype(string tipo): Por ejemplo si tipo es MIME, devuelve un archivo HTML. Ejemplo 2: Servlet que genera código HTML import java.io.printwriter; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class SegundoServlet extends HttpServlet { private static final long serialversionuid = 1L; public void doget(httpservletrequest pedido, HttpServletResponse respuesta) throws ServletException, IOException { respuesta.setcontenttype("text/html"); PrintWriter out=respuesta.getwriter(); String doctype = "<! DOCTYPE HTML PUBLIC \\*-//W3C//DTS HTML 4.0 "+"Transitional//EN\">\n"; out.println(doctype+ "<HTML>\n"+ "<HEAD><TITLE>PÁGINA WEB GENERADA POR SERVLET</TITLE></HEAD>"+ "<BODY>\n"+ "<H1><CENTER>PRUEBA DE TEXTO</CENTER></H1>"+ "</BODY>\n"+ "</HTML>\n"); Página 12 de 36

13 Ejemplo 3: Uso de un archivo HTML para llamar a un servlet que genera código HTML. <!ARCHIVO FORMULARIO0.HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <title>manejo de una petición Get de HTTP</title> </head> <body> <form ACTION="http://localhost:8084/Servlet/CeroServlet" method = "get"> <p><label>haga clic en el botón para invocar el servlet <input type = "submit" value = "Obtener documento de HTML" /> </label></p> </form> </body> </html> //ARCHIVO CEROSERVLET.JAVA import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class CeroServlet extends HttpServlet { protected void doget( HttpServletRequest peticion, HttpServletResponse respuesta ) throws ServletException, IOException { respuesta.setcontenttype( "text/html" ); PrintWriter salida = respuesta.getwriter(); salida.println( "<?xml version = \"1.0\"?>" ); salida.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD " + "XHTML 1.0 Strict//EN\" \"http://www.w3.org" + "/TR/xhtml1/DTD/xhtml1-strict.dtd\">" ); salida.println( "<html xmlns = \"http://www.w3.org/1999/xhtml\">" ); salida.println( "<head>" ); salida.println( "<title>un ejemplo de servlet simple</title>" ); salida.println( "</head>" ); salida.println( "<body>" ); Página 13 de 36

14 salida.println( "<h1> Bienvenido a los servlets!</h1>" ); salida.println( "</body>" ); salida.println( "</html>" ); salida.close(); // cerrar flujo para completar la página Si llamamos un servlet desde un formulario HTML, podremos hacerlo de dos formas: GET y POST. Con la primera los parámetros del formulario están incluidos la url que se utiliza para invocar el servlet y en el segundo caso los parámetros se almacenan en un buffer especial del servidor. Para procesar el primer tipo de peticiones (GET) está el método doget mientras que para el segundo tenemos el método dopost. La implementación por defecto del método service es capaz de determinar el tipo de petición HTTP que en un momento dado recibe el servlet. Una vez identificada llama o al método doget o al dopost según el caso. Ejemplo 4: Uso de doget y dopost Podemos observar que el método init es público, no devuelve ningún tipo (void), que puede lanzar una excepción (ServletException) y que tiene un parámetro (ServletConfig conf). De estos dos últimos aspectos (excepción y parámetro) no nos tenemos que preocupar pues es el servidor quien ejecuta el método init. En el peor de los casos, tendríamos que lanzar la excepción (si sabemos hacerlo), si por algún motivo el método init que nosotros implementemos falle (por ejemplo, que no se pueda conectar a la base de datos y evitamos mostrar un mensaje de error) Lo siguiente que hacemos redefinir el método service, cuando el servidor web recibe una petición para un servlet llama al método public void service(httpservletrequest req, HttpServletResponse res) con dos parámetros: el primero, de la clase HttpServletRequest, representa la petición del cliente y el segundo, de la clase HttpServletResponse, representa la respuesta del servidor (del servlet, más concretamente). Archivo GetPostJava.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class GetPostJava extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>llamada POR GET</h1>"); out.println(req.getparameter("nombre")); Página 14 de 36

15 out.println("</body>"); out.println("</html>"); public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>llamada POR POST</h1>"); out.println(req.getparameter("nombre")); out.println("</body>"); out.println("</html>"); Formulario que llama a GetPostJava <html> <body> <h1>método GET Y POST</h1> <form method="get" action="http://localhost:8084/servlet/getpostjava"> <table border=1> <td>nombres:</td><td><input name="nombre" type="text" style="width: 474px" /></td> <td colspan=2><input type="submit" value="enviar datos por get"></td> </table> </form> <form method="post" action="http://localhost:8084/servlet/getpostjava"> <table border=1> <td>nombres:</td><td><input name="nombre" type="text" style="width: 474px" /></td> <td colspan=2><input type="submit" value="enviar datos por post"> </td> </table> </form> </body> </html> Ejemplo 6: Uso de dopost implementado con doget Página 15 de 36

16 import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class servletdopost extends javax.servlet.http.httpservlet implements javax.servlet.servlet { private static final long serialversionuid = 1L; protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out; out = response.getwriter(); response.setcontenttype("text/html"); out.println("<html>"); out.println("<head><title>mi Primer Servlet </title></head>"); out.println("<body>"); out.println("este es mi Primer Servlet"); out.println("</body></html>"); public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { dopost(req,res); Ejemplo 7: Contar peticiones realizadas Cuando se crea un servlet, el servidor llama al método init y cada vez que un cliente acceda al servlet el servidor llamará al método service que se encargará de redirigir la llamada doget o a dopost. Esto nos quiere decir que cuando se llama por primera vez a un servlet se ejecutara primero init y después service, pero... Y la segunda vez y sucesivas también se llama a init o sólo a service?. Normalmente, el servidor crea el servlet (llama, por tanto, al método init) y lo mantiene funcionando, si ha pasado un tiempo suficiente (y que puede ir desde unos segundos a nunca) sin que el servlet se llame lo deja de ejecutar. Es decir, un servlet se empieza a ejecutar con la primera llamada y, normalmente, se seguirá ejecutando. De esta forma, vamos a crear un servlet que cuente el número de visitas que recibe, para ello nos bastará crear una variable contador que inicializaremos en el método init y que incrementaremos en dopost/doget. Por lo que, el contador se inicializará cuando se llame por primera vez al servlet y se irá incrementando en llamadas sucesivas //Archivo contador.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; Página 16 de 36

17 public class contador extends HttpServlet { //variable contador int contador; public void init(servletconfig conf) throws ServletException { super.init(conf); //inicializamos la variable contador contador = 1; public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); int tmp = contador; //incrementamos la variable contador contador++; out.println("<html>"); out.println("<body>"); out.println("<h1>numero de peticiones " + tmp +"</h1>"); out.println("</body>"); out.println("</html>"); public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); Un mismo servlet puede ser llamado por más de un cliente a la vez. En este caso, el servidor crea una hebra del servlet por cada petición y esas dos hebras accederán concurrentemente a los mismos datos (la variable contador). Como la lectura e incremento de contador no es una Página 17 de 36

18 operación atómica, se podría utilizar la primitiva de sincronización syncronized para que se realice de forma atómica: //Archivo Contador2 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class Contador2 extends HttpServlet { //variable contador int contador; public void init(servletconfig conf) throws ServletException { super.init(conf); //inicializamos la variable contador contador = 1; public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); int tmp; synchronized(this) { //leemos el contador tmp = contador; //incrementamos la variable contador contador++; out.println("<html>"); out.println("<body>"); out.println("<h1>numero de peticiones " + tmp +"</h1>"); out.println("</body>"); Página 18 de 36

19 out.println("</html>"); public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); Ejemplo 8: Uso de un servlet para redireccionado de páginas en Internet. Podemos trabajar de dos maneras: 1- Con una página htm que por medio de hipervínculos me dirija al lugar deseado <! Archivo redireccion.htm--> <?xml version = "1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title>redireccionar una petición hacia otro sitio</title> </head> <body> <p>haga clic en un vínculo para redireccionarlo a la página apropiada</p> <p> <a href = "http://localhost:8084/servlet/redireccion?pagina=mario"> /> <a href = "http://localhost:8084/servlet/redireccion?pagina=primera"> Servlet de bienvenida</a> </body> </html> 2- Por medio de un formulario que me permita seleccionar el lugar deseado <! Archivo formulario4.htm--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-language" content="es-ar" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> Página 19 de 36

20 <title>formulario PARA ENVÍO DE DATOS A</title> <style type="text/css">.style1{ font-family: Tahoma; font-size: large; text-align: center;.style2{ color: #000080;.style6{ font-family: Tahoma; font-size: small; </style> </head> <body> <p class="style1">redireccion POR FORMULARIO</p> <form method="get" action="http://localhost:8084/servlet/redireccion"> <table style="width: 100%"> <td class="style6" colspan="2"> <hr style="height: -71px" class="style2" /></td> <td style="width: 159px" class="style6">indicar Página</td> <td class="style6"> <table style="width: 658px"> <td style="width: 218px"> <input name="pagina" type="radio" checked="checked" value="mario" />MARIOBRESSANO</td> <td style="width: 219px"> Página 20 de 36

21 <input name="pagina" type="radio" value="primera" />PRIMERA</td><td style="width: 219px"></td> </table> </td> <td class="style6" valign="top" colspan="2"> <hr style="height: -71px" class="style2" /></td> <td class="style6" valign="top" colspan="2"> <table align="center"> <td></td> <td><input name="submit1" type="submit" value="enviar datos" /></td> </table> </td> </table> </form> </body> </html> //Servlet para redireccionar Archivo Redireccion.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class Redireccion extends HttpServlet { protected void doget( HttpServletRequest peticion, HttpServletResponse respuesta ) throws ServletException, IOException { String ubicacion = peticion.getparameter( "pagina"); if ( ubicacion!= null ) if ( ubicacion.equals( "mario")) respuesta.sendredirect( "http://www.mariobressano.com.ar"); Página 21 de 36

22 else if ( ubicacion.equals( "primera")) respuesta.sendredirect( "CeroServlet"); // código que se ejecuta solamente si este servlet // no redirecciona al usuario hacia otra página respuesta.setcontenttype( "text/html"); PrintWriter salida = respuesta.getwriter(); // empezar documento de XHTML salida.println( "<?xml version = \"1.0\"?>"); salida.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD" + "XHTML 1.0 Strict//EN\" \"http://www.w3.org" + "/TR/xhtml1/DTD/xhtml1-strict.dtd\">"); salida.println( "<html xmlns = \"http://www.w3.org/1999/xhtml\">"); // sección de encabezado del documento salida.println( "<head>"); salida.println( "<title>página inválida</title>" ); salida.println( "</head>"); // sección del cuerpo del documento salida.println( "<body>"); salida.println( "<h1>solicitó una página inválida</h1>" ); salida.println( "<p><a href = " + "\"redireccion.html\">"); salida.println( "Haga clic aquí para seleccionar de nuevo</a></p>" ); salida.println( "</body>"); // fin del documento de XHTML salida.println( "</html>"); salida.close(); // cerrr flujo para completar la página Ejemplo 9: Uso de un servlet para levantar datos de un formulario confeccionado en html <!Archivo formulario.htm> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD><TITLE>Formulario para ingreso de datos</title></head> <BODY BGCOLOR="#000000" text="#ffffff"> Página 22 de 36

SERVLETS MARIO OSVALDO BRESSANO

SERVLETS MARIO OSVALDO BRESSANO SERVLETS MARIO OSVALDO BRESSANO 1 Qué es un Servlet? Interacción en Internet Cuando vamos a un restaurante, el mozo toma el pedido y se lo pasa al personal de la cocina. Al completarse el pedido, el mozo

Más detalles

2015 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA

2015 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA Ings. Mario Bressano & Miguel Iwanow ENVÍO 11/2015 Qué es un Servlet? Interacción en Internet Cuando vamos a un restaurante, el mozo toma el pedido y se lo pasa

Más detalles

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

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

Más detalles

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

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

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

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

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

Introducción a los servlets

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

Más detalles

Conexión de Mysql con NetBeans

Conexión de Mysql con NetBeans Alumna: Keren Monge Cid Materia: Web Application Development Maestro: Alejandro S. Álvarez Cifuentes Grupo: 3CM2 2do Departamental Conexión de Mysql con NetBeans Objetivo Realizar un programa que realice

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

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

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

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

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

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

Práctica 2: Extensión de un servidor con servlets

Práctica 2: Extensión de un servidor con servlets 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

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

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

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

10. Servlets con acceso a bases de datos

10. Servlets con acceso a bases de datos CAPÍTULO 10 10. Servlets con acceso a bases de datos 10.1. Acceso a bases de datos mediante servlets y JDBC Una de las tareas más importantes y más frecuentemente realizadas por los servlets es la conexión

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

Clase Java que implementa un modelo de programación peticiónrespuesta. Puede usarse para procesar cualquier tipo de petición

Clase Java que implementa un modelo de programación peticiónrespuesta. Puede usarse para procesar cualquier tipo de petición Java EE Servlets Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative

Más detalles

3 PROGRAMACIÓN WEB CON SERVLETS

3 PROGRAMACIÓN WEB CON SERVLETS Tabla de contenidos Práctica 3 PROGRAMACIÓN WEB CON SERVLETS 1. Introducción a los Servlets...1 1.1. Características de los Servlets... 1 1.2. API de los Servlets... 2 2. Servlets HTTP...3 2.1. Características

Más detalles

javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet

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

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

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

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

Más detalles

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

Aplicaciones web con Tomcat y MySQL en Linux

Aplicaciones web con Tomcat y MySQL en Linux Aplicaciones web con Tomcat y MySQL en Linux En este artículo se muestra como usar las tecnologías JDBC y Java Servlet para la creación de aplicaciones web que interactúen con una base de datos MySQL cuando

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

Tecnura ISSN: 0123-921X tecnura@udistrital.edu.co Universidad Distrital Francisco José de Caldas Colombia

Tecnura ISSN: 0123-921X tecnura@udistrital.edu.co Universidad Distrital Francisco José de Caldas Colombia Tecnura ISSN: 0123-921X tecnura@udistrital.edu.co Universidad Distrital Francisco José de Caldas Colombia VANEGAS, CARLOS ALBERTO Tecnura, vol. 9, núm. 18, 2006, pp. 75-87 Universidad Distrital Francisco

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

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

JAVA: Servlets. Diseño de aplicaciones web. mperez@fi.upm.es

JAVA: Servlets. Diseño de aplicaciones web. mperez@fi.upm.es JAVA: Servlets Diseño de aplicaciones web mperez@fi.upm.es Servlets Programas que se ejecutan en los servidores. Añaden funcionalidad a un servidor web, del mismo modo que los applets añaden funcionalidad

Más detalles

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

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

Más detalles

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

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Tecnologías de programación en la Web Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Jesús Arias Fisteus & Andrés Marín López jaf, amarin@it.uc3m.es Tecnologías de programación en la Web p.

Más detalles

Java 2 Enterprise Edition

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

Más detalles

Sistemas de Información

Sistemas de Información Sistemas de Información Tecnologías Web. Interactividad y envío de información Cliente Servidor Servlets Agradecimientos: Jesus Villamor Lugo, Simon Pickin de IT/UCIIIM. mcfp@it.uc3m.es Concepto Qué es

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

Práctica 4 PROGRAMACIÓN WEB CON SERVLETS Y JSP. 1. Introducción a JSP... 2

Práctica 4 PROGRAMACIÓN WEB CON SERVLETS Y JSP. 1. Introducción a JSP... 2 Tabla de contenidos Práctica 4 PROGRAMACIÓN WEB CON SERVLETS Y JSP 1. Introducción a JSP... 2 1.1. Que es Java Server Page (JSP)?...2 1.2. Diferencias entre JSP y Servlet...2 1.3. Características de JSP...2

Más detalles

Aplicaciones Cliente - Servidor

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

Más detalles

DESARROLLO WEB EN ENTORNO SERVIDOR

DESARROLLO WEB EN ENTORNO SERVIDOR DESARROLLO WEB EN ENTORNO SERVIDOR CAPÍTULO 8: Generación dinámica de páginas Web interactivas Marcos López Sanz Juan Manuel Vara Mesa Jenifer Verde Marín Diana Marcela Sánchez Fúquene Jesús Javier Jiménez

Más detalles

Quickstart-Webapps-Spring

Quickstart-Webapps-Spring Alumna: Keren Monge Cid Materia: Web Application Development Maestro: Alejandro S. Álvarez Cifuentes Grupo: 3CM2 3er Departamental Quickstart-Webapps-Spring Objetivo Desarrollar una aplicación web utilizando

Más detalles

HTML, PHP y bases de datos

HTML, PHP y bases de datos HTML, PHP y bases de datos Estrella Pulido Cañabate HTML Estructura de un documento HTML Zen and Tumbolia The Zen monk Bassui wrote a letter to one of his disciples

Más detalles

Practica 11: Conexión de Java con Bases de datos Access

Practica 11: Conexión de Java con Bases de datos Access Practica 11: Conexión de Java con Bases de datos Access En esta práctica vamos a crear una base de datos Microsoft Access y luego vamos a conectarnos desde una aplicación java haciendo uso del puente JDBC-ODBC

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

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO TEMA: REPORTE DEL PROYECTO SEGUNDO DEPARTAMENTAL ALUMNOS: RAMIREZ DOMINGUEZ LUIS MARIO MENDEZ RODRIGUEZ KAREN PINEDA REYES GABRIELA IVONNE GRUPO:

Más detalles

4.1 Tutorial de Servlets y JSPs

4.1 Tutorial de Servlets y JSPs 4.1 Tutorial de Servlets y JSPs Índice Introducción Framework de Servlets JSPs Ejemplo pojo-servjsptutorial Empaquetado de una aplicación Web Ficheros WAR y web.xml Frameworks POJO para interfaz Web Objetivo

Más detalles

9. Servlets CAPÍTULO 9. 9.1. Clientes y Servidores

9. Servlets CAPÍTULO 9. 9.1. Clientes y Servidores CAPÍTULO 9 9. Servlets 9.1. Clientes y Servidores 9.1.1. Clientes (clients) Por su versatilidad y potencialidad, en la actualidad la mayoría de los usuarios de Internet utilizan en sus comunicaciones con

Más detalles

JSP JDBC SALVADORES OLAIZOLA,

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

Más detalles

Curso de desarrollo web en entorno de servidor

Curso de desarrollo web en entorno de servidor Curso de desarrollo web en entorno de servidor Pedro R. Benito da Rocha - por Pedro Raúl Benito da Rocha se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.

Más detalles

Cada vez que la misma computadora solicita una página pg con un browser, junto con la solicitud el browser envía la cookie al servidor.

Cada vez que la misma computadora solicita una página pg con un browser, junto con la solicitud el browser envía la cookie al servidor. Cookies 1 Que son las cookies? Una cookie es una variable almacenada por el servidor en la computadora del cliente. Cada vez que la misma computadora solicita una página pg con un browser, junto con la

Más detalles

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

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

Más detalles

Universidad Don Bosco. Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC

Universidad Don Bosco. Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC Universidad Don Bosco CICLO: 01/2010 Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC Protección de miembros de la clase ->El principio de ocultación de información se

Más detalles

Facultad de Sistemas e Informática

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

Más detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

Manual de JSP con MySQL

Manual de JSP con MySQL Contenido Introducción... 2 Requerimientos... 2 Requerimiento #1: IDE Eclipse... 2 Requerimiento #2: Apache Tomcat, Jboss y MySQL... 2 Desarrollo... 3 Paso #1: Ejecutar Eclipse... 3 Paso #2: WorkSpace...

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

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS CICLO: 01/ 2015 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: DOCENTES: GUIA DE LABORATORIO #12 USO DE JDBC Laboratorio de

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

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Base de Datos JDBC Unidad: 1 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Repaso clase anterior Sentencias preparadas PreparedStatement

Más detalles

Configuración de Tomcat para usar SSL

Configuración de Tomcat para usar SSL Configuración de Tomcat para usar SSL En este tutorial se describe cómo configurar Tomcat para acceder a las aplicaciones web empleando HTTP sobre SSL. Existen dos configuraciones posibles: la más sencilla

Más detalles

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010 INTRODUCCION Los objetos usados en aplicaciones JAVA mantienen su estado y comportamiento mientras la aplicación se halle en ejecución. Generalmente se necesita mantener el estado y comportamiento de los

Más detalles

Tutorial Web Dinámica con Servlets y JSP Sesion 3

Tutorial Web Dinámica con Servlets y JSP Sesion 3 Tutorial Web Dinámica con Servlets y JSP Sesion 3 1. Eclipse Plataforma Web Tool Eclipse WTP proporciona herramientas para desarrollar aplicaciones web estándar Java y aplicaciones Java EE. Artefactos

Más detalles

[CASI v.0109] Pág. 1

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

Más detalles

Introducción a las aplicaciones WEB

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

Más detalles

Funcionamiento del sistema de autentificación en PHP

Funcionamiento del sistema de autentificación en PHP Sistema de autentificación PHP Cómo realizar un sistema de autentificación en PHP, en el que los usuarios deban introducir nombre y contraseña para que puedan visualizar las páginas de una aplicación con

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 13. Servlets Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Describir las características ti de las aplicaciones i Web y los protocolos que intervienen en la

Más detalles

Ciclo Formativo de Grado Superior de Administración de Sistemas Informáticos en red

Ciclo Formativo de Grado Superior de Administración de Sistemas Informáticos en red Ciclo Formativo de Grado Superior de Administración de Sistemas Informáticos en red Módulo Profesional: IAW Unidad de Trabajo 6.- Acceso a Bases de Datos desde lenguajes de clientes y servidor.

Más detalles

UNIVERSIDAD DR. JOSE MATIAS DELGADO

UNIVERSIDAD DR. JOSE MATIAS DELGADO NOMBRE DE LA ASIGNATURA: PROGRAMACIÓN DE COMPUTADORAS 4 a. Generalidades. Número de Orden: Prerrequisito (s): 30 Código: PRC 4 PRC 3 Ciclo Académico: Área: VI Especializada U.V.: 4 Duración del Ciclo en

Más detalles

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1 - Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General:

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1 - Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General: Laboratorio Nro. 11 Web Services con JAX-WS con MySQL I. Competencia General: Mostrar la capacidad que tienen los web services cuando se combinan con componen como una base de datos en MySQL. II. Definiendo

Más detalles

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

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

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

ARQUITECTURAS CLIENTE/ SERVIDOR

ARQUITECTURAS CLIENTE/ SERVIDOR ARQUITECTURAS CLIENTE/ SERVIDOR SERVIDORES ORIENTADOS/ NO ORIENTADOS A CONEXIÓN SERVIDORES ORIENTADOS A CONEXIÓN Telnet HTTP FTP SMTP LDAP Kerberos RMI RPC NFS SERVIDORES NO ORIENTADOS A CONEXIÓN SNMP

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

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

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

Más detalles

Práctica III: Streams, Readers y Writers

Práctica III: Streams, Readers y Writers Práctica III: Streams, Readers y Writers Objetivos En esta práctica vamos a aprender a utilizar Streams, Readers y Writers para realizar operaciones de entrada/salida desde programas escritos en el lenguaje

Más detalles

Índice: Tema 4.2 4.2 Conexión con Bases de Datos

Índice: Tema 4.2 4.2 Conexión con Bases de Datos Índice: Tema 4.2 4.2 Conexión con Bases de Datos 4.2.1 Envío y recepción de datos mediante formularios 4.2.2 Administración de MySQL con phpmyadmin 4.2.3 Conexión con Bases de Datos desde PHP Índice: Tema

Más detalles

JAVA WEB SERVICES. Realizado por: Diana Alfaro Complementado por: Carlos Sánchez Página 1

JAVA WEB SERVICES. Realizado por: Diana Alfaro Complementado por: Carlos Sánchez Página 1 JAVA WEB SERVICES Complementado por: Carlos Sánchez Página 1 CONTENIDO Qué es un Servicio Web? Historia Qué es XML, SOAP, WSDL, UDDI? XML - Extensible Markup Language Soap - XML-RPC (Xml Remote Procedure

Más detalles

Servlets. Seminario de Programacion Rafael Vázquez Pérez

Servlets. Seminario de Programacion Rafael Vázquez Pérez Servlets Seminario de Programacion Rafael Vázquez Pérez Que son los Servlets de Java? Los Servlets son las respuesta de la tecnología Java a la programación CGI. Son programas que se ejecutan en un servidor

Más detalles

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

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:

Más detalles

Escribir código HTML en los servlets es tedioso. que hay que utilizar las instrucciones print, println, etc. Es decir, HTML está dentro de java.

Escribir código HTML en los servlets es tedioso. que hay que utilizar las instrucciones print, println, etc. Es decir, HTML está dentro de java. Java Server Pages Dr. Raúl Pérez Introducción Escribir código HTML en los servlets es tedioso y se presta a equivocarse fácilmente debido a que hay que utilizar las instrucciones print, println, etc. Es

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

1. Servidor Web. (apache). 2. PHP. 3. Manejador de base de datos (mysql, postgress).

1. Servidor Web. (apache). 2. PHP. 3. Manejador de base de datos (mysql, postgress). COMO DESARROLLAR UN SISTEMA EN PHP PASO A PASO. (Guía practica). La presente guía esta diseñada para orientar a los programadores que se están iniciando en el mundo del php, a desarrollar una aplicación

Más detalles

Java EE JavaServer Pages (JSP)

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

Más detalles

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

Departamento de Ciencias e Ing. geniería de la Computación. Diego C. Martínez - DCIC-UNS Tecnología de Programación Diego C. Martínez Departamento de Ciencias e Ing geniería de la Computación Universidad Nacional del Sur Escenario cliente-servidor El escenario de trabajo web es el del mode

Más detalles

Tutorial JSP JavaServer Pages

Tutorial JSP JavaServer Pages JavaServer Pages Tutorial de JavaServer Pages Autor: Miguel Angel García E-Mail: webmaster@verextremadura.com Presentación Este tutorial de páginas JSP, está basado en textos extraídos de diferentes artículos

Más detalles

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

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

Más detalles

CURSO DE PROGRAMACIÓN PHP MySQL

CURSO DE PROGRAMACIÓN PHP MySQL CURSO DE PROGRAMACIÓN PHP MySQL MASTER EN PHP MÓDULO NIVEL BASICO PRIMER MES Aprende a crear Sitios Web Dinámicos con PHP y MySQL 1. Introducción Qué es PHP? Historia Por qué PHP? Temas de instalación

Más detalles

MSSQL Server 2005 - Java

MSSQL Server 2005 - Java Conexión directa MSSQL Server 2005 Java Para conectarse existen drivers de 4 tipos, los de tipo 3 y 4 sirven para conectarse directamente. El de tipo 1 viene incluido en las librerías de java y requiere

Más detalles

Tema 6: Arquitectura Web Multicapa

Tema 6: Arquitectura Web Multicapa Arquitectura software en capas Tema 6: Arquitectura Web Multicapa 1 (Dibujo de arquitectura de Ebay) Capa Presentación: genera pantallas, crea código formato. Capa Lógica negocio: objetos aplicación que

Más detalles

PHP. Introducción (1) Introducción (3) Introducción (2) PHP 1

PHP. Introducción (1) Introducción (3) Introducción (2) PHP 1 Introducción (1) Personal Home Page Qué es? Acrónimo de : Hypertext Preprocessor. Lenguaje interpretado de alto nivel que permite desarrollar fácilmente páginas dinámicas. Similar a los lenguajes C y Perl.

Más detalles

CAPITULO IV 4. Utilización de Servlets en AVCIDE

CAPITULO IV 4. Utilización de Servlets en AVCIDE CAPITULO IV 4. Utilización de Servlets en AVCIDE Las aplicaciones cliente servidor son la piedra angular del desarrollo del Web en la actualidad. La facilidad para crear y manejar aplicaciones Web de una

Más detalles

Capítulo IV. Implementación.

Capítulo IV. Implementación. Capítulo IV. Implementación. 4.1 Instalación. La implementación del sistema comienza con la instalación de las herramientas y tecnologías a utilizar. Empezamos instalando el contenedor web que nos ayudara

Más detalles

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

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

Más detalles

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

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles