Tema 7. Java Servlets

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

Download "Tema 7. Java Servlets"

Transcripción

1 1 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

2 2 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

3 3 Introducción Un servlet es un objeto Java que puede procesar peticiones y retornar respuestas. Habitualmente, esas peticiones y respuestas siguen el protocolo HTTP y permiten añadir funcionalidad dinámica a los servidores web Un servlet es un componente web basado en tecnología Java, gestionado por un contenedor, que genera contenido dinámico.

4 4 Contenedores de servlets Un contenedor de servlets es una parte de un servidor web o de un servidor de aplicaciones que: ofrece servicios de red sobre los cuales se envían peticiones y respuestas. decodifica peticiones formatea respuestas contiene y gestiona el ciclo de vida de los servlets Todos los contenedores de servlets deben soportar como mínimo HTTP/1.0 pero pueden soportar opcionalmente protocolos adicionales como HTTPS. Un contenedor de servlets puede fijar restricciones de seguridad en el entorno en el que el servlet se ejecuta (por ejemplo, se puede limitar la creación de nuevos threads).

5 Contenedores de servlets 5

6 6 Contenedores de servlets La tecnología de servlets para la generación de páginas dinámicas puede integrarse de diferentes maneras con un servidor web o con una aplicación stand-alone: 1. Contenedores de servlets independientes. (Java Server) 2. Contenedores de servlets plug-in. (Native Server) 3. Contenedores de servlets empotrables.

7 7 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

8 8 API de Servlets javax.servlet: Servlets genéricos Interfaces importantes de este paquete: Servlet ServletContext RequestDispatcher javax.servlet.http: Servlets que implementan el protocolo HTTP. Clases e interfaces importantes de este paquete: HttpServlet HttpServletRequest, HttpServletResponse, HttpSession, Cookie

9 9 Implementando un servlet genérico public void service(servletrequest req, ServletResponse res) throws ServletException, java.io.ioexception

10 Proceso de una petición 10

11 11 Implementando un servlet HTTP protected void doget(httpservletrequest req, HttpServletResponse resp) throws ServletException, java.io.ioexception protected void dopost(httpservletrequest req, HttpServletResponse resp) throws ServletException, java.io.ioexception

12 Implementando un servlet HTTP 12

13 13 Hello World Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpS ervlet { public void doget( HttpS ervletrequest req, HttpS ervletresponse res) throws S ervlete xception, IOE xception { res.setcontentt ype("text/html"); P rintwriter out = res.getwriter(); out.println("<ht ML >"); out.println("<he AD><T IT L E >Hello World</T IT L E ></HE AD>"); out.println("<body>"); out.println("<big>hello World</BIG>"); out.println("</body></ht ML >");

14 <HT ML > <HE AD> <T IT L E >Introductions</T IT L E > </HE AD> <BODY> <FORM M E T HOD=GE T ACT ION ="/servlet/hello"> If you don't mind me asking, what is your name? <IN P UT T YP E =T E XT N AME ="name"><p > <IN P UT T YP E =S UBMIT > </FORM > </BODY> </HT ML >

15 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpS ervlet { public void doget(https ervletrequest req, HttpS ervletresponse res) throws S ervlete xception, IOE xception { res.setcontentt ype("text/html"); P rintwriter out = res.getwriter(); S tring name = req.getp arameter("name"); out.println("<ht ML >"); out.println("<he AD><T IT L E >Hello, " + name + "</T IT L E ></HE AD>"); out.println("<body>"); out.println("hello, " + name); out.println("</body></ht ML >"); public S tring gets ervletinfo() { return "A servlet that knows the name of the person to whom it's" + "saying hello"; Gestionar el método POST public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); Y desde el HTML: <FORM METHOD=POST ACTION="/servlet/Hello">

16 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Deblink extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { String contenttype = req.getcontenttype(); // get the incoming type if (contenttype == null) return; // nothing incoming, nothing to do res.setcontenttype(contenttype); // set outgoing type to be incoming type PrintWriter out = res.getwriter(); BufferedReader in = req.getreader(); String line = null; while ((line = in.readline())!= null) { line = replace(line, "<BLINK>", ""); line = replace(line, "</BLINK>", ""); out.println(line); public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); private String replace(string line, String oldstring, String newstring) { int index = 0; while ((index = line.indexof(oldstring, index)) >= 0) { // Replace the old string with the new string (inefficiently) line = line.substring(0, index) + newstring + line.substring(index + oldstring.length()); index += newstring.length();

17 17 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

18 18 Ciclo de vida de un servlet 1. Carga de la clase e instanciación 2. Inicialización: init() 3. Servicio de peticiones: service() 4. Finalización: destroy()

19 19 Servlet contador import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class S implecounter extends HttpS ervlet { int count = 0; public void doget(https ervletrequest req, HttpS ervletresponse res) throws S ervlete xception, IOE xception { res.setcontentt ype("text/plain"); P rintwriter out = res.getwriter(); count++; out.println("s ince loading, this servlet has been accessed " + count + " times."); Qué pasa si el contenedor de servlets decide destruir el servlet por falta de memoria???

20 public void doget(https ervletrequest req, HttpS ervletresponse res) throws S ervlete xception, IOE xception { res.setcontentt ype("text/plain"); P rintwriter out = res.getwriter(); count++; out.println("since loading (and with a possible initialization"); out.println("parameter figured in), this servlet has been accessed"); out.println(count + " times."); 20 public class InitCounter extends HttpS ervlet { Servlet contador con init int count; public void init(s ervletconfig config) throws S ervlete xception { super.init(config); S tring initial = config.getinitp arameter("initial"); try { count = Integer.parseInt(initial); catch (N umberformate xception e) { count = 0;

21 21 Servlet contador con init y destroy (I) public void init(servletconfig config) throws ServletException { // Always call super.init(config) first (servlet mantra #1) super.init(config); // Try to load the initial count from our saved persistent state try { FileReader filereader = new FileReader("InitDestroyCounter.initial"); BufferedReader bufferedreader = new BufferedReader(fileReader); String initial = bufferedreader.readline(); count = Integer.parseInt(initial); return; catch (FileNotFoundException ignored) { // no saved state catch (IOException ignored) { // problem during read catch (NumberFormatException ignored) { // corrupt saved state // No luck with the saved state, check for an init parameter String initial = getinitparameter("initial"); try { count = Integer.parseInt(initial); return; catch (NumberFormatException ignored) { // null or non-integer value // Default to an initial count of "0"

22 22 Servlet contador con init y destroy (II) public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/plain"); PrintWriter out = res.getwriter(); count++; out.println("since the beginning, this servlet has been accessed " + count + " times."); public void destroy() { savestate(); public void savestate() { // Try to save the accumulated count try { FileWriter filewriter = new FileWriter("InitDestroyCounter.initial"); String initial = Integer.toString(count); filewriter.write(initial, 0, initial.length()); filewriter.close(); return; catch (IOException e) { // problem during write // Log the exception. See Chapter 5, "Sending HTML Information".

23 23 Clases servlet y objetos servlets y threads El contenedor de servlets crea una única instancia de cada servlet por declaración de servlet que aparezca en el descriptor de despliegue. Si el servlet se incluye dentro de una aplicación marcada como distribuible, el contenedor crea solo una instancia por declaración de servlet y por máquina virtual. Dado que una misma clase puede aparecer en diferentes declaraciones de servlet nunca deben utilizarse variables estáticas para almacenar información entre peticiones.

24 24 Servicio de peticiones y threads Un contenedor de servlets puede invocar al método service() (o doget, dopost,...) de forma concurrente a través de varios threads. Por tanto todos los servlets deben sincronizar adecuadamente el acceso a objetos compartidos.

25 25 Servlet contador import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class S implecounter extends HttpS ervlet { int count = 0; public void doget(https ervletrequest req, HttpS ervletresponse res) throws S ervlete xception, IOE xception { res.setcontentt ype("text/plain"); P rintwriter out = res.getwriter(); count++; out.println("s ince loading, this servlet has been accessed " + count + " times."); Problemas???

26 26 Problemas de sincronización con el contador count++ // Thread 1 count++ // Thread 2 out.println // Thread 1 out.println // Thread 2

27 27 Sincronizando el contador. Alternativas. public synchronized void doget(httpservletrequest req, HttpServletResponse res) 1 PrintWriter out = res.getwriter(); synchronized(this) { count++; out.println("since loading, this servlet has been accessed " + count + " times."); 2 PrintWriter out = res.getwriter(); int local_count; synchronized(this) { local_count = ++count; out.println("since loading, this servlet has been accessed " + local_count + " times."); 3

28 import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HolisticCounter extends HttpS ervlet { static int classcount = 0; // shared by all instances int count = 0; // separate for each servlet static Hashtable instances = new Hashtable(); // also shared public void doget(https ervletrequest req, HttpS ervletresponse res) throws S ervlete xception, IOE xception { res.setcontentt ype("text/plain"); P rintwriter out = res.getwriter(); count++; out.println("s ince loading, this servlet instance has been accessed " + count + " times."); // Keep track of the instance count by putting a reference to this // instance in a Hashtable. Duplicate entries are ignored. // T he size() method returns the number of unique instances stored. instances.put(this, this); out.println("t here are currently " + instances.size() + " instances."); classcount++; out.println("across all instances, this servlet class has been " + "accessed " + classcount + " times.");

29 29 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

30 30 ServletRequest (I) Parámetros Funciones que permiten acceder a los parámetros de una petición. Los parámetros se reciben siempre del cliente. public java.lang.string getparameter(java.lang.string name) Retorna el valor del parámetro cuyo nombre es name como un String, o null si el parámetro no existe. public java.util.map getparametermap() Retorna una tabla de hash con los parámetros de la petición. public java.util.enumeration getparameternames() Retorna una Enumeration de objetos String conteniendo los nombres de los parámetros de la petición. public java.lang.string[] getparametervalues(java.lang.string name) Retorna un array de String con los valores de un parámetro, o null si el parámetro no existe.

31 31 ServletRequest (II) Atributos Los atributos permiten la comunicación entre servlets que se pasen una misma petición (pipeline) o entre filtros y servlets. public java.lang.object getattribute(java.lang.string name) Retorna el valor del atributo name o null si no existe. public java.util.enumeration getattributenames() Retorna una Enumeration de objetos String conteniendo los nombres de los atributos de la petición. public void removeattribute(java.lang.string name) Elimina el atributo name de la petición. public void setattribute(java.lang.string name, java.lang.object o) Fija el valor del atributo name al objeto o.

32 32 HTTPServletRequest (I) Cabeceras Funciones que permiten acceder a las cabeceras HTTP de la petición. public java.lang.string getheader(java.lang.string name) Retorna el valor de la primera cabecera de petición con nombre name. public java.util.enumeration getheadernames() Retorna los nombres de todas las cabeceras de petición. public java.util.enumeration getheaders(java.lang.string name) Retorna todas las cabeceras de petición con nombre name. public int getintheader(java.lang.string name) public long getdateheader(java.lang.string name) Retornan cabeceras de tipos específicos.

33 33 HTTPServletRequest (II) Descomposición de elementos en el camino de una petición RequestURI = ContextPath + ServletPath + PathInfo public java.lang.string getrequesturi() Retorna la parte del URL de la petición que va desde el nombre de servidor hasta el interrogante o hasta el final si éste no aparece. public java.lang.string getcontextpath() Retorna el fragmento de URL que indica el contexto de la petición. public java.lang.string getservletpath() Retorna el fragmento de URL que permite seleccionar el servlet. public java.lang.string getpathinfo() Retorna el resto del RequestURI (no ContextPath y no ServletPath).

34 34 Información de la petición import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class RequestInfo extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>request Information Example</title>"); out.println("</head>"); out.println("<body>"); out.println("<h3>request Information Example</h3>"); out.println("method: " + request.getmethod()); out.println("request URI: " + request.getrequesturi()); out.println("protocol: " + request.getprotocol()); out.println("pathinfo: " + request.getpathinfo()); out.println("remote Address: " + request.getremoteaddr()); out.println("</body>"); out.println("</html>");

35 35 import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; Parámetros de la petición public class RequestParamExample extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("get Request. No Form Data Posted"); public void dopost(httpservletrequest request, HttpServletResponse res) throws IOException, ServletException { Enumeration e = request.getparameternames(); PrintWriter out = res.getwriter (); while (e.hasmoreelements()) { String name = (String)e.nextElement(); String value = request.getparameter(name); out.println(name + " = " + value);

36 36 Cabeceras de la petición import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class RequestHeaderExample extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); Enumeration e = request.getheadernames(); while (e.hasmoreelements()) { String name = (String)e.nextElement(); String value = request.getheader(name); out.println(name + " = " + value);

37 37 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

38 38 ServletResponse Enviando información El objeto respuesta dispone de métodos para incluir en la respuesta datos binarios y de texto. public ServletOutputStream getoutputstream() throws IOException Retorna un ServletOutputStream, adecuado para el envío de datos binarios en la respuesta. public java.io.printwriter getwriter() throws IOException Retorna un PrintWriter que permite enviar información textual al cliente.

39 39 HTTPServletResponse (I) Fijando cabeceras Un servlet puede fijar las cabeceras de la respuesta antes de enviar ninguna otra información, utilizando los métodos: public void addheader(java.lang.string name, java.lang.string value) Añade value al conjunto de valores de la cabecera name. public void setheader(java.lang.string name, java.lang.string value) Fija a value el valor de la cabecera name. public void adddateheader(java.lang.string name, long date) public void addintheader(java.lang.string name, int value) public void setdateheader(java.lang.string name, long date) public void setintheader(java.lang.string name, int value) Lo mismo con tipos específicos.

40 40 HTTPServletResponse (II) Retornando redirecciones y errores Si se desea retornar una respuesta indicando que ha habido un error o redirigir a otra página, podemos utilizar: public void senderror(int sc) throws IOException Envía una respuesta de error al cliente utilizando el código de estado especificado y limpiando el buffer. public void senderror(int sc, java.lang.string msg) throws IOException Envía una respuesta de error en forma de página HTML conteniendo el texto que incluya la variable msg. public void sendredirect(java.lang.string location) throws IOException Envía una respuesta de redirección temporal al cliente utilizando location como URL.

41 41 HTTPServletResponse (III) Cierre del objeto respuesta El objeto respuesta se cierra cuando se da una de las siguientes condiciones: Finaliza el método service() Se había fijado el tamaño máximo de la respuesta (vía setcontextlegth()) y ya se ha escrito esa cantidad de datos. Se llama a senderror() Se llama a sendredirect() El objeto respuesta NO SE PUEDE UTILIZAR después de que se haya cerrado.

42 42 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

43 43 Sesiones (I) Los servlets nos proveen con un mecanismo automático de gestión de sesiones. Opciones: Cookies. JSESSIONID URL rewriting. Sesiones SSL. Las sesiones existen a nivel de aplicación web (ServletContext), es decir, se comparten entre los diferentes servlets de una aplicación. Las sesiones se encapsulan como instancias de la clase HTTPSession.

44 44 Sesiones (II) Obteniendo la sesión Usamos la petición (HTTPServletRequest) para acceder a la sesión public HttpSession getsession() Retorna la sesión asociada con la petición. Si no existe, crea una. public HttpSession getsession(boolean create) Retorna la sesión asociada con la petición. Si no existe, y create es cierto, crea una.

45 45 Sesiones (III) Atributos de sesión Podemos asociar atributos a una sesión, para mantener el estado del cliente entre dos peticiones. public java.lang.object getattribute(java.lang.string name) Retorna el valor del atributo de nombre name public java.util.enumeration getattributenames() Retorna una enumeración con los nombres de todos los atributos public void setattribute(java.lang.string name, java.lang.object value) Fija el valor del atributo de nombre name asignándole value. public void removeattribute(java.lang.string name) Elimina el atributo de nombre name

46 46 Sesiones (IV) Finalización de sesión Una sesión finaliza cuando pasa un cierto tiempo sin recibirse peticiones que se identifiquen como pertenecientes a esa sesión. Se puede fijar el tiempo de inactividad para que la sesión finalice. public void setmaxinactiveinterval(int interval) Especifica el tiempo, en segundos, entre peticiones de un mismo cliente antes de que el contenedor de servlets invalide la sesión.

47 Recibiendo Cookies import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CookieExample extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); // print out cookies Cookie[] cookies = request.getcookies(); for (int i = 0; i < cookies.length; i++) { Cookie c = cookies[i]; String name = c.getname(); String value = c.getvalue(); out.println(name + " = " + value);

48 Enviando Cookies import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CookieExample extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); String name = request.getparameter("cookiename"); if (name!= null && name.length() > 0) { String value = request.getparameter("cookievalue"); Cookie c = new Cookie(name, value); response.addcookie(c);

49 49 Accediendo a la sesión (I) import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class SessionExample extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); HttpSession session = request.getsession(true); // print session info Date created = new Date(session.getCreationTime()); Date accessed = new Date(session.getLastAccessedTime()); out.println("id " + session.getid()); out.println("created: " + created); out.println("last Accessed: " + accessed);

50 50 Accediendo a la sesión (II) // set session info if needed String dataname = request.getparameter("dataname"); if (dataname!= null && dataname.length() > 0) { String datavalue = request.getparameter("datavalue"); session.setattribute(dataname, datavalue); // print session contents Enumeration e = session.getattributenames(); while (e.hasmoreelements()) { String name = (String)e.nextElement(); String value = session.getattribute(name).tostring(); out.println(name + " = " + value);

51 51 Carrito de la compra public class CashierServlet extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Get the user's session and shopping cart HttpSession session = request.getsession(); ShoppingCart cart = (ShoppingCart)session. getattribute("cart");... // Determine the total price of the user's books double total = cart.gettotal();...

52 52 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

53 53 Aplicaciones web Una aplicación web es una colección de servlets, páginas HTML, clases y otros recursos que comprenden una aplicación completa dentro de un servidor web. Una aplicación web se enraiza en un camino específico dentro de un servidor web. Ejemplo: La aplicación web de gestión de catálogo se puede encontrar bajo

54 54 Elementos de una aplicación web Servlets Páginas JSP Clases Java de utilidad Documentos estáticos (html, imágenes, sonidos, etc.) Applets, beans y clases de la parte cliente de la aplicación Información descriptiva que enlaza los elementos anteriores.

55 55 Estructura de directorios Una aplicación web existe como una estructura jerárquica de directorios Por ejemplo, para un aplicación enraizada en el servidor en /catalog, el fichero index.html que se encuentre en la raiz de la jerarquia de directorios de la aplicación web será retornado cuando el usuario solicite /catalog/index.html. Existe un directorio especial dentro de la jerarquía de la aplicación llamado WEB-INF. Este directorio no es visible desde el exterior, pero si para los servlets de la aplicación utilizando getresource. Los contenidos del directorio WEB-INF son: /WEB-INF/web.xml: El descriptor de despliegue. Explica al contenedor de servlets lo que contiene la aplicación. /WEB-INF/classes/ Es el directorio donde se encuentran los.class de los servlets y del resto de clases Java que utilice la aplicación /WEB-INF/lib/*.jar Es el área predefinida para archivos Java Archive.

56 56 Estructura de directorios. Ejemplo /index.html /howto.jsp /feedback.jsp /images/banner.gif /images/jumping.gif /WEB-INF/web.xml /WEB-INF/lib/jspbean.jar /WEB-INF/classes/com/miempresa/servlets/MiServlet.class /WEB-INF/classes/com/miempresa/util/MiClaseUtilidad.class Las aplicaciones web se empaquetan en archivos.war (Web Archive).

57 57 Descriptor de despliegue Incluye información relativa a: Datos generales de la aplicación web (iconos, nombre, descripción) Parámetros de inicialización de la aplicación web (cada aplicación los define y usa para lo que considera oportuno) Configuración de la gestión de sesiones (timeout) Declaración de servlets Mapeos de servlets Otros: Declaración de taglibs, lista de archivos de bienvenida, páginas de error, mapeos de tipos MIME, declaración de clases listener del ciclo de vida de la aplicación, definición de filtros, mapeos de filtros, seguridad, acceso a objetos JNDI.

58

59 Servlets y mapeos de servlets 59

60 60 Mapeos de servlets. Matching Tipos de matching: /esto/es/un/camino/* -> matching de prefijos /esto/es/un/camino/exacto -> matching exacto *.zp -> matching de extensión / -> matching para definir un servlet por defecto Algoritmo de mapeo: 1. Si existe un matching exacto entre el path solicitado y el del servlet, se envia la petición al servlet. 2. Se intenta encontrar de forma recursiva, el mayor prefijo que haga matching y se envia la petición al servlet. 3. Si el ultimo segmento de la URL contiene una extensión, se busca un servlet que gestione esa extensión 4. Si se ha definido, se envía la petición al servlet por defecto.

61 61 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

62 62 ServletContext (I) La interficie ServletContext define la vista que un servlet tiene de la apliación web en la que está contenido. Un servlet puede utilizar el ServletContext para realizar logs, obtener referencias URL a recursos y fijar y almacenar atributos a los que otros servlets de la misma aplicación pueden acceder. Existe una instancia de ServletContext por cada aplicación web. Parámetros de inicialización Permiten acceder a los parámetros de inicialización de la aplicación web especificados en el descriptor de despliegue public java.lang.string getinitparameter(java.lang.string name) Retorna el valor de inicialización de name public java.util.enumeration getinitparameternames() Retorna una enumeración con los nombres de los parámetros de inicialización

63 63 ServletContext (II) Atributos de contexto Permiten compartir información entre servlets que forman parte de la misma aplicación web. Si la aplicación es distribuida, solo entre los que corren en la misma máquina virtual public java.lang.object getattribute(java.lang.string name) Retona el objeto que se ha asociado con el nombre name. public java.util.enumeration getattributenames() Retorna una enumeración con los nombres de los atributos. public void removeattribute(java.lang.string name) Elimina el atributo de nombre name. public void setattribute(java.lang.string name, java.lang.object object) Fija el valor del atributo de nombre name al objeto object.

64 64 ServletContext (III) Recursos La interfaz ServletContext ofrece acceso directo a la jerarquía de contenidos estáticos que son parte de la aplicación web como HTML's, GIF's, etc. public java.net.url getresource(java.lang.string path) throws MalformedURLException Nos permite construir la URL de un recurso local a nuestro sistema de ficheros. public java.io.inputstream getresourceasstream(java.lang.string path) Retorna el recurso que se encuentra en el camino path como un InputStream.

65 65 ServletContext (IV) Log La interfaz ServletContext nos ofrece la posibilidad de escribir información en el fichero de log del servidor. void log(java.lang.string msg) Escribe el mensaje a un fichero de log del servlet, habitualmente en el log de eventos. El nombre y tipo del fichero log es específico para cada contenedor de servlets. void log(java.lang.string message, java.lang.throwable throwable) Escribe en un fichero log del servlet un menaje explicatorio y la traza de la pila dada una excepción

66 Listener

67 Filtros y mapeos de filtros

68 ServletContext

69

70

71 71 Tema 7. Java Servlets 7.1. Introducción. Contenedores de servlets El API de Servlets Ciclo de vida de un servlet. Peticiones y threads La petición 7.5. La respuesta 7.6. Sesiones 7.7. Aplicaciones web 7.8. ServletContext 7.9. Colaboración entre servlets

72 72 RequestDispatcher Despachando peticiones Es posible que un servlet necesite la ayuda de otros servlets, JSP's o HTML's para generar partes de la respuesta. O bien decida hacer parte del trabajo y después enviar la petición a otro para que continúe. Para eso se usan los ResquestDispatcher. public void forward(servletrequest request, ServletResponse response) throws ServletException, IOException Envía una petición de un servlet a otro recurso (servlet, fichero JSP o fichero HTML) del servidor. public void include(servletrequest request, ServletResponse response) throws ServletException, IOException Incluye el contenido de un recurso (servlet, fichero JSP o fichero HTML) en la respuesta

73 Obteniendo el request dispatcher de un servlet o JSP de otra aplicación web 73 public ServletContext getcontext(java.lang.string uripath) public class MiServlet extends HTTPServlet { public void doget(httpservletrequest req,httpservletresponse res) {... // Obtenemos el contexto del servlet actual ServletContext sc = getservletcontext() // Le solicitamos que encuentre el contexto del servlet // que queremos usar ServletContext sc2 = sc.getcontext( app2 ); // Obtenemos el Request dispatcher a partir del nuevo contexto RequestDispatcher rd = sc2.getrequestdispatcher( /servletui ); rd.forward(req,resp);

74 Obteniendo el request dispatcher de un servlet o JSP de nuestra misma aplicación web 74 public RequestDispatcher getrequestdispatcher(java.lang.string path) Por ejemplo: public class MiServlet extends HTTPServlet { public void doget(httpservletrequest req,httpservletresponse res) {... RequestDispatcher rd = req.getrequestdispatcher( servletui ); rd.forward(req,resp);

75 75 RequestDispatcher (II) Imaginemos un servlet que recibe un pedido, almacena su información, y a continuación quiere mostrar la página de que el pedido se ha almacenado correctamente que sabemos que esta en /pags-staticas/pedidook.html. public void doget (HTTPServletRequest req,httpservletresponse resp){... almacenarpedido(); RequestDispatcher rd = req.getrequestdispatcher( /pagsstaticas/pedidook.html ); rd.forward(req,resp);... (lo que vaya aquí nunca se ejecutará).

76 76 RequestDispatcher (III) Imaginemos que nuestra página web se divide en dos secciones MENÚ PRINCIPAL public void doget (HTTPServletRequest req,httpservletresponse resp){... // HTML previo del cuadro RequestDispatcher rd = req.getrequestdispatcher( /menu.jsp ); rd.include(req,resp);... // HTML intermedio del cuadro RequestDispatcher rd2 = req.getrequestdispatcher( /main.jsp ); rd2.include(req,resp);... //HTML final del cuadro

77 Eventos en el ciclo de vida 77

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

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

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

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

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

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

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Servlets Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Jesús Arias Fisteus & Andrés Marín López {jaf, amarin}@it.uc3m.es Servlets p. 1 Introducción Servlet: Programa Java que se ejecuta en

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Aplicaciones Web con Servlets y JSP (I)

Aplicaciones Web con Servlets y JSP (I) Aplicaciones Web con Servlets y JSP (I) Jesús Arias Fisteus Aplicaciones Web (2016/17) Aplicaciones Web (2016/17) Aplicaciones Web con Servlets y JSP (I) 1 Parte I Servlets Aplicaciones Web (2016/17) Aplicaciones

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

Aplicaciones Web (Curso 2015/2016)

Aplicaciones Web (Curso 2015/2016) Aplicaciones Web con Servlets y JSP (I) Aplicaciones Web (Curso 2015/2016) Jesús Arias Fisteus // jaf@it.uc3m.es Aplicaciones Web con Servlets y JSP (I) p. 1 Servlets Aplicaciones Web con Servlets y JSP

Más detalles

Java Servlets. Qué es un programa? Luis Fernando Llana Díaz. 22 de abril de input Programa output. En pascal:

Java Servlets. Qué es un programa? Luis Fernando Llana Díaz. 22 de abril de input Programa output. En pascal: Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Qué es un programa? input Programa output En pascal: program holamundo (input, output ); var nombre

Más detalles

Computación Web (Curso 2015/2016)

Computación Web (Curso 2015/2016) Computación Web con Servlets y JSP (I) Computación Web (Curso 2015/2016) Jesús Arias Fisteus // jaf@it.uc3m.es Computación Web con Servlets y JSP (I) p. 1 Servlets Computación Web con Servlets y JSP (I)

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

Computación Web (Curso 2013/2014)

Computación Web (Curso 2013/2014) Aplicaciones Web con Servlets y JSP (I) Computación Web (Curso 2013/2014) Jesús Arias Fisteus // jaf@it.uc3m.es Aplicaciones Web con Servlets y JSP (I) p. 1 Envío de parámetros de formularios Aplicaciones

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

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

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

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

Tema 2: Diseño de la capa lógica

Tema 2: Diseño de la capa lógica escuela técnica superior de ingeniería informática Tema 2: Diseño de la capa lógica Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software de Gestión III Índice Modelo conceptual Mapeo

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

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

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

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

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

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

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

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

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

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

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

Servlets. 1. Introducción Características fundamentales Ventajas fundamentales... 2

Servlets. 1. Introducción Características fundamentales Ventajas fundamentales... 2 Servlets Índice 1. Introducción 2 1.1. Características fundamentales......................... 2 1.2. Ventajas fundamentales............................ 2 2. Programación de servlets 3 2.1. Ciclo de vida

Más detalles

Desarrollo de Sistemas Software Basados en Servicios y Componentes

Desarrollo de Sistemas Software Basados en Servicios y Componentes Desarrollo de Sistemas Software Basados en Servicios y Componentes Bloque Docente SERVICIOS WEB Parte 2 Portada Escuela Superior de Ingeniería (ESI) Universidad de Almería Índice Visualización WSDL (servicios

Más detalles

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO INTEGRANTES SANLUIS CASTILLO JOSE DAVID MATERIA WEB APPLICATIONS DEVELOPMENT PROFESOR CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO. PRACTICA USO DE GET,

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

Sesiones en PHP. Área de Ingeniería Telemática

Sesiones en PHP. Área de Ingeniería Telemática Sesiones en PHP Contenido Estado de la conexión con el navegador Cookies Sesiones Sesiones en PHP 2 Estado de la conexión con el navegador Cuando el usuario solicita una página que es en verdad un PHP

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

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

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

Fecha: 13 de Agosto de 2001 Relacionada con J2EE1.3 y Tomcat 4 Desde entonces ya ha aparecido la versión 2.4, emparejada con J2EE 1.

Fecha: 13 de Agosto de 2001 Relacionada con J2EE1.3 y Tomcat 4 Desde entonces ya ha aparecido la versión 2.4, emparejada con J2EE 1. 7. APÉNDICE 2. ESPECIFICACIÓN JAVA SERVLET 2.3 Fecha: 13 de Agosto de 2001 Relacionada con J2EE1.3 y Tomcat 4 Desde entonces ya ha aparecido la versión 2.4, emparejada con J2EE 1.4 y Tomcat 5 7.1. INTRODUCCIÓN

Más detalles

Introducción n a Java EE: Servlets

Introducción n a Java EE: Servlets Introducción n a Java EE: Servlets Departamento de Lenguajes escuela técnica superior de ingeniería informática Versión original: Amador Durán y Ramón Medel marzo 2007 Tiempo: 1h Grupo de Ingeniería a

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

[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

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

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

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

Framework 1. Web en Java. (solo aplicaciones en mantenimiento)

Framework 1. Web en Java. (solo aplicaciones en mantenimiento) Framework 1 Desarrollo de aplicaciones Web en Java (solo aplicaciones en mantenimiento) Enero de 2013 Unidad de Arquitectura y Soporte de Aplicaciones Área de Aplicaciones Especiales y Arquitectura de

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

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

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

Invocar a Recursos Web

Invocar a Recursos Web Invocar a Recursos Web Problemas de Concurrencia en Aplicaciones Web Múltiples requerimientos simultáneos a un servlet HTTP Req. Contenedor Web HTTP Req. Servlet1 HTTP Req. HTTP Req. HTTP Req. Servlet2

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

Capitulo 7: Tecnologías de la Capa Media, Lógica del Negocio.

Capitulo 7: Tecnologías de la Capa Media, Lógica del Negocio. Operaciones en la capa media Capitulo 7: Tecnologías de la Capa Media, Lógica del Negocio. Arquitectura MVC. Operaciones de la capa media. CGI, PHP, Java Servlet y JSP. Diseño de la capa media. Comunicación

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

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

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

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

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

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

Tema 7: Servidores Web (II) Contenidos

Tema 7: Servidores Web (II) Contenidos Tema 7: Servidores (II) 1 Contenidos Servidores/aplicaciones con/sin Estado Sesiones con Servlets Contextos compartidos con Servlets Acceso concurrente desde Servlets Servidores Proxy Cache Servidores

Más detalles

Tema 2: Diseño de la capa lógica

Tema 2: Diseño de la capa lógica escuela técnica superior de ingeniería informática Tema 2: Diseño de la capa lógica Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software de Gestión III Índice Modelo conceptual Mapeo

Más detalles

3.9 Patrón Distributed callback

3.9 Patrón Distributed callback 3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima

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

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

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

Más detalles

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

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

Más detalles

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

Tema 4: Servidores Web

Tema 4: Servidores Web Acceso a Páginas Web en ficheros Tema 4: Servidores Web Disco Duro Apache, IIS SO Unix host Web : Open(f,./index.html ); Read(f); Output Close(f); Cabeceras + 1 2 Interfaces Web Aplicaciones CGI: Common

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

Dossier de prácticas

Dossier de prácticas Dossier de prácticas Intranet / Extranet Màster d Enginyeria del Software Desenvolupament d aplicacions sobre Internet Fundació Politècnica de Catalunya Jaume Moral Ros Albert Obiols Vives 1 Dossier de

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

Servidores Web. Tema 4: Acceso a Páginas Web en ficheros. Output. GET /index.html. Server host. HTTP server: Apache, IIS SO Unix.

Servidores Web. Tema 4: Acceso a Páginas Web en ficheros. Output. GET /index.html. Server host. HTTP server: Apache, IIS SO Unix. Tema 4: Servidores Web 1 Acceso a Páginas Web en ficheros Server host Disco Duro HTTP server: Apache, IIS SO Unix Client host Web Client: Iexplorer, FireFox GET /index.html Open(f,./index.html ); Read(f);

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

Práctica 4: Java Remote Method Invocation (RMI)

Práctica 4: Java Remote Method Invocation (RMI) Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado

Más detalles

Práctica 5: Common Object Request Broker Architecture CORBA

Práctica 5: Common Object Request Broker Architecture CORBA Práctica 5: Common Object Request Broker Architecture CORBA Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es entender mejor el funcionamiento de CORBA (Common Object Request Broker

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

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

Tema 4. II - Cookies. Arquitecturas Distribuidas 11/12

Tema 4. II - Cookies. Arquitecturas Distribuidas 11/12 Tema 4. II - Cookies Arquitecturas Distribuidas 11/12 1 II. Cookies 1. Necesidad de mantener información de estado y HTTP 2. Sesiones 3. Qué son las cookies? 4. Funcionamiento de cookies 5. Envío de cookies

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

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

1. Visión general de RMI

1. Visión general de RMI 1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina

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

FRAMEWORK SPRING EN UNA APLICACIÓN WEB

FRAMEWORK SPRING EN UNA APLICACIÓN WEB 3CM2 FRAMEWORK SPRING EN UNA APLICACIÓN WEB WEB APPLICATION DEVELOPMENT 1. INTRODUCCIÓN El Spring Framework es un popular marco de aplicaciones de código abierto que puede hacer más fácil el desarrollo

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

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