Present Online
Send the link below via email or IM to invite your audience
Start the presentation
- 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
- To open PEZ file, please download 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.
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
Tweet
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


