Prezi

Share this prezi

Who can edit:

Present Online

Send the link below via email or IM to invite your audience

Copy

Start the presentation

Start presenting

  • Invited audience will follow you as you navigate and present
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can view together your prezi
  • Learn more about this feature in the manual

Download prezi for:

Present offline on a PC or Mac.

  • Embedded YouTube videos need an active Internet connection to play.
  • Portable prezis are not editable.

Edit and present offline with Prezi Desktop

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

Desarrollo Web 2012 Parte 2

No description
by Ignacio Avas on 4 September 2012

Comments (0)

Please log in to add your comment.

Report abuse

Prezi Transcript

Desarrollo Web Taller de Programación 2012 Tecnologías Aplicaciones Web Servlets & JSP Patrones de Diseño Servlets JSP JAVA EE Java Platform Enterprise Edition Plataforma Java que facilita el desarrollo de Aplicaciones Web, Web Services, Sistemas Distribuidos, Arquitecturas en Varios Niveles Java EE javax.xml.ws.*: Cliente de Web Services javax.persistence.*: API de persistencia javax.servlet.*: Soporte para Servlets javax.serlvet.jsp.*: Java Server Pages Server Side Scripting Java EE Servlets JavaServer Pages Objetos que pueden manejar una petición a una página web y devolver una respuesta ejecutando código Java. HTML con código Java embebido. Más apropiados para HTML dinámico Tomcat es un servidor Web y un Contenedor de Servlets y JSP Servidor Web JEE Browser Hace los pedidos HTTP para obtener páginas y otros recursos del Servidor Web Servidor Web Recibe pedidos HTTP Los despacha según los la URL Las reglas son programables (web.xml) Contenedor Web JEE: Invoca a servlets o JSP y a partir de la salida de ellos, retorna la página resultado. Elementos Código Java en Servidor Web Qué son? API Sesión Objetos Java que se ejecutan en un servidor HTTP (servidor Web) Componentes Web que pueden atender pedidos HTTP realizados al servidor y responder generando contenido dinámicamente. Invocados a través de un Contenedor Web JEE El contenido generado puede ser obtenido de diversas fuentes de información como bases de datos o desde otras clases Java. Son clases java: Multiplataforma. Actúan como capa intermedia entre: El Cliente Web Bases de Datos o Aplicaciones en el Servidor javax.servlet.http.HttpServlet Clase abstracta que define métodos que se llaman en distintas situaciones. Se debe redefinir algunos métodos para que el servlet funcione. HttpServlet.doGet(HttpServletRequest req, HttpServletResponse resp) HttpServlet.doPost(HttpServletRequest req, HttpServletResponse resp) Método GET Método POST = ¿Cómo se invocan? El Servidor Web mapea URL’s a servlets Esta configuración se suele hacer en el archivo web.xml Request Response Sesión Contexto javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse Encapsula un Request realizado por un cliente Permite acceder a los parámetros del mismo getParameter() retorna valor del parámetro getParametersNames() retorna los nombres de los parámetros Encapsula la respuesta que se le va a dar al cliente Dos formas de devolver los datos Modo texto: a través getWriter() Binario: a través de getOutputStream() Encapsula el contexto de la Aplicación Web Análogo a la Session pero a nivel de aplicación. Se obtiene con getServletContext() de un servlet javax.servlet.ServletContext El protocolo HTTP no mantiene estado ni información entre pedidos Motivación Solución Una sesión Web es un conjunto de peticiones que un browser hace a un servidor Web Es iniciada la primera vez que el usuario accede a la app usando el Browser Es mantenida por la plataforma mientras el usuario utiliza la aplicación. Puede ser invalidada por la aplicación. La plataforma provee un mecanismo que permite cargar y guardar información global a todos los componentes que reciben requests de un mismo cliente Web Encapsula la sesión del cliente web con el servidor Compartida por todos los pedidos de un mismo cliente. Se obtiene con getSession() de un Request Permite obtener/guardar información en el estado de la sesión: setAttribute() getAttribute() javax.servlet.http.HttpSession Sesion Web A través del contexto se puede acceder a los RequestDispatchers Estos permiten redirigir los pedidos que llegan a un Servlet a otro Servlet o JSP. Utilizado en algunos patrones de diseño que vamos a ver Redirección Cómo Identificar la sesión Menos usada Queda desprolijo y lleva a URL’s más largas y menos entendibles Menos segura www.example.com/algo.html?SESSION_ID=555 Usando el cabezal cookie de la petición HTTP Usando un parámetro en cada URL que indique que sesión Utilizada por la mayoría de los servidores Web & Servlets & JSP + javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse Sesión Web El Java EE define dos Clases para guardar información persistente a un Request / Response Algunos paquetes de Java EE Ejemplo (contar páginas navegadas) JavaServer Pages Extensión a la tecnología de Servlets Permite Aplicar Server Side Scripting embebido en un documento HTML Más apropiado para generar HTML dinámico que Servlets Apunta a separar la lógica de generación de contenido con la presentación de los datos generados. La lógica asociada a la presentación del contenido dinámico se incluye embebida dentro del contenido estático. Documentos HTML con Java embebido Estas partes dinámicas se marcan con tags especiales JSP Tags especiales JSP Librerías de Tags definidas por un desarrollador Trozos de código Java, llamados scriptlets Directiva Comentario Declaración Inclusión Expresión Scriptlet Ejemplo Otros <jsp:forward> <jsp:getProperty> <jsp:plugin> <jsp:setProperty> <jsp:useBean> <%@ taglib %> Cómo Funcionan 1. El browser envía un Request HTTP 2. El Servidor Web lo Recibe Contenedor Servlets/JSP 3. El JSP se compila WEB-INF/perfil.jsp org.apache.jsp.WEB_002dINF.usuarios.perfil_jsp (Fuente JSP) (Servlet Compilado) 4. El Request va al Servlet Compilado 5. La salida se devuelve al browser Objetos Implícitos El contenedor Web Java pone a disposición objetos a los desarrolladores, sin que tengan que crearse manualmente Encapsula el pedido del cliente web. Similar al parámetro request en doGet() y doPost() request (HttpServletRequest) response (HttpServletResponse) Encapsula la respuesta a devolver. Similar al parámetro response de doGet() y doPost() application (ServletContext) Representa el ServletContext obtenido del Servlet del JSP compilado. session (HttpSession) Tiene la información de la sesión web. Similar a evaluar request.getSession() Lista completa de objetos implícitos JSTL JavaServer Pages Standard Tag Library (JSTL) Etiquetas con lógica propia Permite embeber lógica sin usar scriplets JSP Templating Motivación: Las páginas web usualmente tienen un esquema común. Templating Reducción de Repetición de HTML Generalmente cada página solo cambia el área principal Solución? Templates: Reducción de repetición de código HTML Ejemplo Ventajas Desventajas No es necesario usar librerías extra Reuso de componentes Templating con jsp:include Repetición del esquema en todas las páginas Menos flexible que otras alternativas Otros frameworks con soporte Documentos HTML con Java embebido Introducción Aspectos Avanzados Manejo de errores en JSP Al procesar una página JSP puede ocurrir un error. Paso 1: Manejar excepciones con la directiva "errorPage" Paso 2: Definir una errorPage Paso 3: Utilizar la variable exception Tenemos nuestra página de error Patrones de Diseño Solución MVC Modelo Vista Controlador Mantiene los datos Maneja la lógica de negocio Se encarga de mostrar los datos del modelo al usuario Páginas Web + Recursos estáticos Maneja los pedidos de los usuarios invocando al Modelo y a la Vista Model View Controller Consulta/Modifica Invoca a Consulta a (Serlvets) (Páginas JSP + Recursos estáticos) (Interfaces hacia la capa lógica + clases Java) Llega un request del cliente web El controlador invoca o modifica al modelo para obtener datos para mostrar El controlador invoca una vista El controlador decide que vista invocar Implementación con JSP/Servlets Cliente Web Flujo de Eventos Patrones de Diseño Cómo construir una aplicación Web Separación lógica de Presentación Flujo de trabajo típico Cliente consulta una url particular Servidor invoca a capa lógica para consultar datos Se muestra una página Particular Demo Ejemplo de una implementación MVC Netbeans 6.9 Apache Tomcat 6.0.X Firefox ≥ 3 / Chrome ≥ 13 / IE ≥ 9 Materiales
See the full transcript