Your SlideShare is downloading. ×
0
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Desarrollo web2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desarrollo web2

101

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
101
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PROGRAMACIÓN AVANZADA IDESARROLLO WEB 2Mario Linares VásquezEspecialización Ingeniería de Software - Unillanos
  • 2. AgendaHTTPRequest y HTTPResponseServletContextServletContextScopesSesionesExpresiones y Scriptlets JSP
  • 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. 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. 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. HTTPRequest y HTTPResponse
  • 7. HTTPRequest y HTTPResponse
  • 8. HTTPRequest y HTTPResponse
  • 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. Parámetros del request
  • 11. Parámetros del request
  • 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. 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. HTTServletResponse
  • 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. 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. 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. 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. Scopes
  • 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. 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. 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. 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. 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. 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. JSP - ContextosServlet JSPServlet JSP
  • 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. 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. 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

×