• Save
Desarrollo web2
Upcoming SlideShare
Loading in...5
×
 

Desarrollo web2

on

  • 268 views

 

Statistics

Views

Total Views
268
Views on SlideShare
268
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Desarrollo web2 Desarrollo web2 Presentation Transcript

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