Servlets 10 de Mayo de 2006.

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.
Fernando Alonso Blázquez Servlets con acceso a Bases de Datos 29 de Abril de 2004.
Servlets 22 de Abril de 2004 Fernando Alonso Blázquez.
Programación Orientada a Objeto 1
Servidores Web Capítulo 2.
Modelando aplicaciones
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.
Java 2 Platform Enterprise Edition
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.
Tecnologías para el desarrollo de aplicaciones Web
Ingeniero Anyelo Quintero
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.
Lenguajes de programación Web
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.
La Web y el HTTP. Antes del año 1990 Internet era usado por InvestigadoresAcadémicosEstudiantes Transferir archivos logearse remotamente Enviar/recibir.
“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
Parameters passed by client One of the most important features to make the web an interactive environment is the passing of parameters from client so the.
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.
Aplicaciones Web de Servidor
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.
Clase 5 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
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.
Servidor web Alumna: María Verónica Mancheno Materia: Gestión de Información Web Profesor: José Medina Moreira.
 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.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
Servlets Servlets son módulos que extienden a servidores “java- enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Modelo Cliente - Servidor. La Web funciona siguiendo el denominado modelo cliente-servidor, habitual en las aplicaciones que funcionan en una red. Existe.
Administración de Sitios Web Introducción al Lenguaje PHP
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.
Autentificación y Seguridad en Aplicaciones Web.  Delegadas en el cliente y el servidor ◦ Basados en estándares de Internet  Autentificación Básica.
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 10 de Mayo de 2006

Índice ¿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 Compilación, 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 5.5.17 Realizar download de tomcat.apache.org Se descomprime en un directorio del ordenador: C:\Archivos de programa\Apache\Tomcat 5.5 Variables del sistema: CATALINA_HOME set CATALINA_HOME=C:\ Archivos de programa\Apache\Tomcat 5.5 Ejecución: Arranque del servidor: %CATALINA_HOME%\bin\startup Url en el navegador: http://localhost:8080/ Parada del servidor: %CATALINA_HOME%\bin\shutdown

Compilación Compilación 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

Compilación, 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