Servlets 22 de Abril de 2004 Fernando Alonso Blázquez.

Slides:



Advertisements
Presentaciones similares
Java Enterprise Edition (Java EE)
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Internet y tecnologías web
Fernando Alonso Blázquez Sesiones 06 de Mayo de 2004.
Fernando Alonso Blázquez Formularios en lenguaje HTML 26 de Febrero de 2004.
Características Generales y Entornos de Desarrollo
Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004.
PRESENTA: Mizrain Cano Chico Profesor: Lic. Albino Petlacalco Ruiz
Programación Orientada a Objeto 1
Jakarta Tomcat (Contenedor de servlets/jsps)
Aplicaciones J2EE.
Entorno de trabajo con apache ant
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
Aplicaciones Cliente-Servidor
"java del lado del servidor" Servlet y JSP Java Server Pages.
Servlets.
Servlets.
Servlets Servlets.
Curso de Java y Aplicaciones Web
Curso de Java y Aplicaciones Web
Java 2 Platform Enterprise Edition
SERVIDORES DE OBJETOS Christian Andrés Castellanos Carlos Alberto Algarra
Almacenamiento virtual de sitios web: «Hosts» virtuales Gustavo Antequera Rodríguez.
Formularios en lenguaje HTML 7 de Abril de Índice Generalidades Definición en HTML Elementos Formas de envío: métodos GET y POST Recepción y tratamiento.
Sesión en Servlets 31 de Marzo de Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura.
M.I. María Luisa González Ramírez Servlets y JSP.
Primer Programa en JAVA
CGI.   Cuando el World Wide Web inició su funcionamiento como lo conocemos, empezando a tomar popularidad aproximadamente en 1993, solo se podía apreciar.
Borland User Group - Guatemala Desarrollo de Servlets con Borland JBuilder 2006 Mario Enríquez Open Consult Diciembre 2006.
JAVA. Introducción Que es java?  Código reusable  Multiplataforma.
Servlets Roberto Moriyón. Servlets, I Objetos java, componentes web contenidas en un servidor (contenedor de servlets) que los reutiliza, que reciben.
Tecnologías para el desarrollo de aplicaciones Web
Ingeniero Anyelo Quintero
HTTP, CGI, Applets, Servlets y SOAP
Servlets, JSP, JavaBEANS,JDBC
Una java servlet es un programa que se ejecuta en un servidor. Por lo general son aplicaciones Java que corren en un entorno de servidor web. Los Java.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
PHP TODO SOBRE PHP.
Servlets 18 de Marzo de Índice ¿Qué es un Servlet? ¿Cuándo y por qué usar Servlets? Estructura básica de un HttpServlet Servlet simple que genera.
JAVA: Servlets Diseño de aplicaciones web
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Comparación entre applets, CGI, PHP, ASP,
Applets CONTENIDO ¿Que es un applet? Lo básico de un applet Ciclo de vida de un Applet Las etiquetas de HTML Pasando información a los applets.
TEMA 6. Applets y servlets
PROTOCOLO H T T P.
Por: Jorge Aguirre PUERTOS DE UN SERVIDOR WEB.  Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor.
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
Fernando Alonso Blázquez Nicolás Serrano Bárcena Servlets 8 de Abril de 2008.
Fernando Alonso Nicolás Serrano Servlets con acceso a Bases de Datos 21 de Abril de 2008.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Java Applets David Gil
Desarrollo con Servlets. Servlets: Introducción  Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Mario Osvaldo Bressano Servlets. Mario Osvaldo Bressano Arquitectura de 2 Capas.
JAVA: Servlets Diseño de servicios web © María de los Santos Pérez Hernández
Servlets Servlets son módulos que extienden a servidores “java- enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Servlets Servlets son módulos que extienden a servidores orientados a request/response, como por ejemplo Servidores Web “java-enabled”. Un servlet puede.
Servlets 10 de Mayo de 2006.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Cristian Fonnegra Marin
Sun Microsystems. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets y extienden su funcionalidad. También podrían correr.
Programación Java y Desarrollo de Aplicaciones Modulo 3 Lenguaje de programación Java Software utilizado.
 Claudia Jordan Idrovo.  Son los puntos de enganche para cada conexión de red que realizamos. El protocolo TCP (el utilizado en internet) identifica.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
 Módulos que amplían los servidores orientados a petición/respuesta.  La respuesta en el lenguaje Java a los CGIs (Common Gateway Interface) para construir.
Temario Java 2 Enterprise Edition Arquitectura Especificación Servlets Contenedores Cookies Sesiones.
Trabajar con SERVLETS. Índice Qué son los Servlets Para qué sirven Cómo se utilizan Ejemplo Cómo probar un Servlet.
Transcripción de la presentación:

Servlets 22 de Abril de 2004 Fernando Alonso Blázquez

Indice ¿Qué es un Servlet? Cuándo y por qué usar Servlets Servlet vs. CGI Ventajas de los Servlets frente a los CGI Estructura básica de un HttpServlet Servlet simple que genera texto plano Servlet simple que genera un HTML Compilado, instalación e invocación Ejemplo: ServletOpinion Ciclo de vida de los Servets

¿Qué es un Servlet? Programas en Java que se ejecutan en un servidor HTTP (servidor Web) Actúan como capa intermedia entre: Petición proviniente de un Navegador Web u otro cliente HTTP Bases de Datos o Aplicaciones en el servidor HTTP Servidor Web BD BD externa Servlet Aplicación

Tareas encomendadas a un Servlet Leer los datos enviados por un usuario Usualmente de formularios en páginas Web Pueden venir de applets de Java o programas cliente HTTP. Buscar cualquier otra información sobre la petición que venga incluida en esta Detalles de las capacidades del navegador, cookies, nombre del host del cliente, etc. Generar los resultados Puede requerir consults a Base de Datos, invocar a otras aplicaciones, computar directamente la respuesta, etc. Dar formato a los resultados en un documento Incluir la información en una página HTML Establecer los parámetros de la respuesta HTTP Decirle al navegador el tipo de documento que se va a devolver, establecer las cookies, etc. Enviar el documento al cliente

Cuándo y por qué usar Servlets Muchas peticiones desde navegador se satisfacen retornando documentos HTML estáticos, es decir, que están en ficheros En ciertos casos, es necesario generar las páginas HTML para cada petición: Página Web basada en datos enviados por el cliente Motores de búsqueda, confirmación de pedidos Página Web derivada de datos que cambian con frecuencia Informe del tiempo o noticias de última hora Página Web que usa información de bases de datos corporativas u otras fuentes del la parte del servidor Comercio electrónico: precios y disponibilidades

Servidor Web basado en CGI Servidor Web basado en Java Servlet Servlet vs. CGI Servidor Web Petición al CGI-2 Petición al CGI-1 Proceso Hijo del CGI-1 Proceso Hijo del CGI-2 Servidor Web basado en CGI Petición al Servlet-2 Petición al Servlet-1 Servidor Web JVM Servlet-1 Servlet-2 Thread Servidor Web basado en Java Servlet

Ventajas de los Servlets frente a CGI Eficiencia CGI corto: el proceso de arranque de cada proceso puede dominar el tiempo de ejecución N peticiones simultáneas: el código del CGI se carga en memoria N veces Al terminar el proceso, el CGI se cierra: difícil persistencia de datos (conexiones a BD, caché...) Conveniencia Los Servlets tienen una infraestructura muy amplia para la tratar automáticamente datos de formularios HTML, gestionar sesiones y otras utilidades de alto nivel. Potencia Los Servlets pueden comunicar directamente con el navegador Web Pueden mantener datos entre peticiones, simplificando el seguimiento de sesiones y operaciones de caché Varios Servlets pueden compartir datos

Ventajas de los Servlets frente a CGI Portabilidad Los Servlets están escritos en Java y siguen una API estándar. Pueden funcionar sin ningún cambio en diferentes servidores Seguridad CGI adolecen de vulnerabilidades porque: Se ejecutan en el shell del SO Pueden sufrir overflows por el lenguaje (C, C++, ...) Los Servlets no sufren estos problemas Economía Añadir soporte para Servlet a un servidor Web ya disponible tiene muy poco coste extra Existen ciertos servidores web y servidores de servlet gratuitos para tráficos pequeños

Estructura de un HttpServlet import java.io.*; //Se importan los paquetes con las clases para Servlets y HttpServlets import javax.servlet.*; import javax.servlet.http.*; public class ServletTemplate extends HttpServlet{ //El método doGet responde a peticiones mediante el método GET public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // El objeto “request” se usa para leer los “HTTP headers” que llegan // (p.e. Cookies) y los datos de formularios HTML enviados por el usuario // El objeto “response” se usa para especificar “HTTP status codes” y // “HTTP headers” de la respuesta (p.e. El tipo de contenido, cookies, etc.) PrintWriter out = response.getWriter(); // El objeto “out” se usa para enviar contenido al navegador } //El método doPost responde a peticiones mediante el método POST public void doPost(HttpServletRequest request, HttpServletResponse response) doGet(request, response);

Servlet simple que genera texto plano import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); }

Servlet simple que genera un HTML import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SimpleHTML extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Le decimos al navegador que lo que vamos a devolver es un HTML response.setContentType("text/html"); PrintWriter out = response.getWriter(); // Construimos una página HTML legal out.println(“<HTML>"); out.println(“<HEAD><TITLE>Servlet simple que genera un HTML</TITLE></HEAD>"); out.println(“<BODY>"); out.println(“<H2>Servlet que genera un HTML</H2>"); out.println(“<P>Este Servlet devuelve el cógigo de una página HTML que el"); out.println(“ navegador interpreta y muestra como tal.</P>"); out.println(“</BODY>"); out.println(“</HTML>"); out.flush(); out.close(); }

Instalación de Tomcat Realizar download de tomcat.apache.org Se descomprime en un directorio del ordenador: C:\apache-tomcat-5.5.16 Variables del sistema: CATALINA_HOME set CATALINA_HOME=C:\apache-tomcat-5.5.16 Ejecución: Arranque del servidor: %CATALINA_HOME%\bin\startup Url en el navegador: http://localhost:8080/ Parada del servidor: %CATALINA_HOME%\bin\shutdown

Instalación de Tomcat (en salas ordenadores) Copiar los directorios: conf - Server configuration files (including server.xml) logs - Log and output files shared - For classes and resources that must be shared across all web applications webapps - Automatically loaded web applications work - Temporary working directories for web applications temp - Directory used by the JVM for temporary files (java.io.tmpdir) Variable del sistema: CATALINA_BASE -Dcatalina.base=%CATALINA_BASE%

Compilación Compilado Instalación Vamos a utilizar la librería de Tomcat 5 Indicar en el CLASSPATH dónde están las clases para que el compilador las reconozca Path del archivo: %CATALINA_HOME%\common\lib\servlet-api.jar Compilar como cualquier otro código fuente Java Instalación Se entiende por instalación de un Servlet a ponerlo disponible en el servidor para ser invocado desde un navegador o cliente HTTP Se necesita un servidor de Servlets (por ejemplo, Apache Tomcat 5.0 que es gratuito) Anteriormente se utilizaba el Servletrunner que viene con la instalación del JSDK2.0

Compilado, instalación e invocación Invocación de un Servlet Desde la barra de direcciones del navegador: Ejemplo: De esta forma se invoca el servlet mediante el método GET siempre Desde un formulario: La dirección del servlet debe ir en el action El servlet se invoca al hacer Submit y lo hace mediante el método definido en el formulario Al servlet se le pasan los valores de los campos http://hostname:port/context/Nombre_Servlet http://localhost:8080/servlet/SimpleHTML <FORM action=“http://hostname:port/context/Nombre_Servlet” method=“POST”> ... </FORM>

Ejemplo: ServletOpinion Página HTML: MiServlet.html Servlet ServletOpinion.java -> ServletOpinion.class Configurar web.xml <servlet> <servlet-name>eje1</servlet-name> <servlet-class>eje1</servlet-class> </servlet> <servlet-mapping> <url-pattern>/eje1</url-pattern> </servlet-mapping> Arrancar Tomcat

Ciclo de vida de los Servets HttpServlet Objeto HttpServletRequest Objeto HttpServletResponse Método init() Se ejecuta una sola vez al inicializar el Servlet Inicializar variables y operaciones costosas en tiempo de ejecución Métodos doGet() o doPost() Recoger peticiones del usuario y ejecutar operaciones Mandar respuesta al usuario (en forma de HTML) Otros métodos de usuario Método destroy() Lo llama el servidor al “apagarse” Cerrar procesos en curso, liberar memoria, cerrar ficheros

Java Servlet Development Kit 2.0 Servlets JSDK2.0 Java Servlet Development Kit 2.0 22 de Abril de 2004 Fernando Alonso Blázquez

Compilado, instalación e invocación Vamos a utilizar la Servlet API 2.0 Instalar el JSDK2.0 Java Servlet Development Kit 2.0 Indicar en el CLASSPATH dónde están las clases para que el compilador las reconozca Path del archivo: jsdk.jar Compilar como cualquier otro código fuente Java Instalación Se entiende por instalación de un Servlet a ponerlo disponible en el servidor para ser invocado desde un navegador o cliente HTTP Se necesita un servidor de Servlets (por ejemplo, Apache Tomcat 4.0 que es gratuito) Vamos a utilizar el Servletrunner que viene con la instalación del JSDK2.0

Compilado, instalación e invocación Servletrunner.exe Programa que se ejecuta bajo MS-DOS y que se queda escuchando a un puerto a la espera de que un servlet sea llamado Hay que indicar en la variable de entorno PATH el path donde se encuentra el Servletrunner para poderlo ejecutar desde cualquier directorio Se ejecuta de la siguiente manera: -p 8080 indica el puerto al que escucha -d g:\Infor3\Practica8 indica el directorio donde están los servlets (ficheros *.class) Al invocar un servlet, el Servletrunner lo ejecuta c:\>servletrunner –p 8080 –d g:\Infor3\Practica8\ port = 8080 backlog = 50 max handlers = 100 timeout = 5000 servlet dir = g:\Infor3\Practica8\ document dir = .\examples servlet propfile = g:\Infor3\Practica8\servlet.properties

Compilado, instalación e invocación Invocación de un Servlet Desde la barra de direcciones del navegador: Ejemplo: De esta forma se invoca el servlet mediante el método GET siempre Desde un formulario: La dirección del servlet debe ir en el action El servlet se invoca al hacer Submit y lo hace mediante el método definido en el formulario Al servlet se le pasan los valores de los campos http://hostname:port/servlet/Nombre_Servlet http://localhost:8080/servlet/SimpleHTML <FORM action=“http://hostname:port/servlet/Nombre_Servlet” method=“POST”> ... </FORM>

Ejemplo: ServletOpinion Página HTML: MiServlet.html Servlet ServletOpinion.java -> ServletOpinion.class Arrancar Servletrunner.exe