Desarrollo web2

222 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
222
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desarrollo web2

  1. 1. PROGRAMACIÓN AVANZADA IDESARROLLO WEB 2Mario Linares VásquezEspecialización Ingeniería de Software - Unillanos
  2. 2. AgendaHTTPRequest y HTTPResponseServletContextServletContextScopesSesionesExpresiones y Scriptlets JSP
  3. 3. HTTPRequest y HTTPResponseCiclo de vida de una solicitudEl usuario invoca un servletdirectamente por URL, haciendo clicken un enlace o enviando un formulariohtml.El contenedor identifica que laEl contenedor identifica que laSolicitud es para un servlet y enesa medida crea un objetoHTTPServletRequest y unoHTTPServletResponse.
  4. 4. HTTPRequest y HTTPResponseCiclo de vida de una solicitudEl contenedor encuentra el servlet conbase en la url proporcionada, inicia unhilo para el servlet e invoca el métodoservice() con el request y response comoargumentos.El método service() identifica el métodoEl método service() identifica el métodoHTTP del request, y con base en estoinvoca el respectivo método en el servlet.
  5. 5. HTTPRequest y HTTPResponseCiclo de vida de una solicitudEl servlet toma los parametros del requesty utliza el response para generar unarespuesta al cliente. El response vuelveal contenedor.Los objetos request y response quedanLos objetos request y response quedanruera del alcance y son marcados paraser limpiados por el Garbage Collector.
  6. 6. HTTPRequest y HTTPResponse
  7. 7. HTTPRequest y HTTPResponse
  8. 8. HTTPRequest y HTTPResponse
  9. 9. Parámetros del requestLos valores que se ingresan en campos de tipo input de unformulario son parametros del request que llega al servlet.formulario son parametros del request que llega al servlet.El objeto HTTPServletRequest tiene dos métodos para accedera los parametros:String param = request.getParameter("<nombre del parámetro> ");String[] params = request.getParameterValues("<nombre del parámetro> ");
  10. 10. Parámetros del request
  11. 11. Parámetros del request
  12. 12. HTTServletRequestProporciona métodos para acceder a la siguiente información:Información del browserInformación del browserString client = request.getHeader(“User-Agent”);Cookies asociadas con el requestCookie[] cookies = request.getCookies();Sesión asociada con el clienteHttpSession session = request.getSession();Método HTTPString theMethod = request.getMethod();InputStream del requestInputStream input = request.getInputStream();
  13. 13. HTTServletResponseSe utiliza para generar la respuesta al cliente, mediante lageneración directa de contenido usando un Writer o mediante lageneración directa de contenido usando un Writer o mediante laredirección del flujo de respuesta hacia una página JSP, unservlet, o una URL.
  14. 14. HTTServletResponse
  15. 15. HTTServletResponseDe acuerdo con el tipo de contenido que se va a generar para elresponse, en el método setContentType se puede utilizarresponse, en el método setContentType se puede utilizarcualquiera de los tipos MIME:text/htmlapplication/pdfvideo/quicktimeapplication/javaUn listado de todos los mime types se puedeencontrar enapplication/javaimage/jpegapplication/jarapplication/octect-streamapplication/x-zipencontrar enhttp://www.iana.org/assignments/media-types/
  16. 16. HTTServletResponseEn el caso de una redirección de flujo se utiliza el métodosendRedirect(url)sendRedirect(url)response.sendRedirect("http://www.mipagina.com");response.sendRedirect(“directorio/index.jsp");response.sendRedirect(“/index.jsp");Relativa al contextoRaíz del contenedorAbsolutaresponse.sendRedirect(“/index.jsp"); Raíz del contenedor
  17. 17. Envío de atributos a JSPsEn su labor de controladores, los servlets pueden enviar datos(en formato de VO/DTO) a las JSPs.(en formato de VO/DTO) a las JSPs.request.setAttribute(“key”, attribute);request.getRequestDispatcher("main.jsp").forward(request, response);En el caso de envío de atributos a una jsp no se puede hacerEn el caso de envío de atributos a una jsp no se puede hacercon el metodo sendRedirect del response, porque en este casoel request ya es otro objeto.
  18. 18. ScopesLos scopes proporcionan marcos de acceso a atributos de acuerdocon la cobertura del scope. Los atributos son objetos , a diferenciade los parámetros que son String.de los parámetros que son String.En las aplicaciones JEE hay cuatro scopes: Context, Request, Session,Page. En los scopes se pueden colocar y consultar atributos,mediante los métodos setAttribute(String name, Object value) ygetAttribute(String name)Scope CoberturaSession Solo los componentes involucrados en la sesiónRequest Los componentes involucrados en el requestContext Todo el mundo en la aplicación tiene accesoPage Solo la página JSP que crea el objeto
  19. 19. Scopes
  20. 20. ServletContextProporciona un scope de información que aplica para toda laaplicación. Es decir por cada aplicación web existe unServletContext.ServletContext.Se usa para acceder a parámetros que aplican para toda laaplicación web, como por ejemplo los parámetros de inicio que seconfiguran en el deployment descriptor (web.xml).Se usa para agregar atributos que cualquier componente de laaplicación puede consultar.aplicación puede consultar.Permite acceder a información como el nombre y versión delcontenedor, y la versión del API soportada.
  21. 21. SesionesPermiten la ejecución de aplicaciones bajo un modeloconversacional, es decir el algunos objetos seleccionadosconversacional, es decir el algunos objetos seleccionadosmantienen su estado durante la el tiempo de vida de la sesión.En las aplicaciones JEE el objeto HTTPSession permitemantener objetos a través de múltiples requests.Debido a que el modelo de http es stateless, es necesarioasignar un identificador unico que defina la sesión, para quelos request se mantengan en un marco conversacional.
  22. 22. SesionesDos aproximaciones se tienen para el manejo del id de sesión:Autenticación y cookies.Autenticación y cookies.En el caso de las cookies, con elprimer request se genera un id enel contenedor; este id se regresaal cliente para que en un próximorequest pueda ser enviado alcontenedor.contenedor.Para generar todo el procesosolo es necesaria la siguientelínea:request.getSession()
  23. 23. SesionesEn el caso que el cliente tenga deshabilitadas las cookies esnecesario que el id de sesión este codificado en las urls. En estenecesario que el id de sesión este codificado en las urls. En estecaso se deben usar los métodos:response.encodeURL(String url)response.encodeRediretURL(String url)
  24. 24. HTTPSessionMétodo DescripcióngetCreationTime() Retorna el tiempo en el cual lasesión fue creada por primera vez.getLastAccesedTime() Retorna en ms el tiempo del ultimorequest con un session id.setMaxInactiveInterval() Máximo tiempo en segs entrerequest de la misma sesión.request de la misma sesión.getMaxInactiveInterval() Retorna el máximo tiempo deinactividad de la sesión.invalidate() Finaliza la sesión.
  25. 25. JSPLas páginas JSP pueden tener código Java para la generaciónde contenido dinámico. El código Java puede presentar ade contenido dinámico. El código Java puede presentar amanera de scriplets o como una expresión.Scriplet Expresión
  26. 26. JSP - ContextosServlet JSPServlet JSP
  27. 27. JSP - TagsTag Descripción Ejemplo<%@ %> Directiva: se usa paraimportar librerías de objetos.<%@ import=“java.util.*” %><%! %> Declaración: se usa para ladeclaración de variables.<%! int index = 1; %><% %> Scriplet: se usa para ingresarporciones de código java.<% for(int i=1; i<10;i++)….%><%= %> Expresion: se usa para la <%= request.getAttribute(” pepe”)%><%= %> Expresion: se usa para laimpresion directa de valores.<%= request.getAttribute(” pepe”)%>${ } Expresion EL: expresión paraacceso rápido${applicationScope.mail}
  28. 28. JSP- Expression LanguagePermite la evaluación inmediata de expresiones que usan el operador. (punto) para acceder a propiedades atributos en algunos en losscopes.scopes.Por ejemplo ${person.name} imprime directamente el valor delatributo name de un atributo person, que reside en alguno de scopes.El lado derecho del operator . (punto) puede ser cualquiera de losobjetivos implicitos en los jsp:pageScope, requestScope, sessionScope, applicationScope, param,header, pageContext.
  29. 29. BibliografíaB. Basham. Head First Servlets and JSP. Oreilly,2008.2008.The Java EE 5 Tutorial.http://java.sun.com/javaee/5/docs/tutorial/doc/index.html

×