Download blanco y negro - DCIC
Document related concepts
no text concepts found
Transcript
Tecnologías de Programación Web Dr. Diego C. Martínez Servlets y sesiones Cuando desde un servlet queremos mantener datos para un mismo cliente entre pedidos (requests) podemos utilizar variables de sesión. Las variables de sesión son variables que el servidor recordará que pertenecen a algún cliente en particular, y por lo tanto mantendrá una copia separada para cada cliente. Se mantienen agrupadas en un objeto de tipo HttpSession HttpSession session = req.getSession(true); Podemos almacenar valores en ese objeto, recuperarlos después, eliminarlos, etc. Algunas operaciones: session.isNew(); session.setAttribute(String nombre, Object valor); session.getAttribute(String nombre); session.invalidate(); © Diego C. Martínez - DCIC-UNS 1 Java Server Pages La tecnología JSP (Java Server Pages) usa tags al estilo XML y scriptlets escritos en Java para encapsular la lógica que genera el contenido de la página. Al separar la lógica de el diseño y la presentación, JSP facilita la tarea de construir aplicaciones basadas en la web. Permiten incluir directamente código Java en un documento HTML, de la misma forma que lo permiten otros lenguajes como PHP. Forman una extensión natural a los servlets. De hecho, luego de un preprocesado, las páginas JSP terminan siendo nada más y nada menos que un servlet!. Desde el punto de vista del programador, Servlets y JSP son intercambiables, dependiendo del balance de carga estática y dinámica del documento a generar. © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS 3 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur Java Server Pages - ejemplo Java Server Pages - ejemplo HolaVos.jsp Hora.jsp <HTML> Hola <I> <%= request.getParameter("nombre") %> </I>! </HTML> <%@page import=“java.util.Date”%> <HTML> <BODY> Hora actual: <%= new Date().toString() %> </I>! </BODY> </HTML> http://localhost/HolaVos.jsp?nombre=Homero http://localhost/HolaVos.jsp?nombre=Homero Hola Homero! http://localhost/Hora.jsp Hora actual: Mon Jul 31 10:55:54 GMT+01:00 2006 © Diego C. Martínez - DCIC-UNS 5 Java Server Pages © Diego C. Martínez - DCIC-UNS 6 Java Server Pages Además de HTML normal, podemos agregar otro tipo de elementos al documento: Para simplificar los elementos se puede acceder a algunas variables predefinidas, como request en el ejemplo anterior. • Elementos de Script (scriptlets): código Java que se convertirá en parte del servlet resultante luego del preprocesado. Existen otros objetos predefinidos o implícitos, con diferentes alcances o ámbitos: • Directivas: elementos que nos permiten controlar la estructura general del servlet resultante. Básicamente, son mensajes al contenedor de servlets. • Alcance de aplicación: Java Server Page y la aplicación contenedora tienen objetos de este ámbito. • Acciones: por medio de las cuales especificamos ciertos componentes que deben ser usados en el documento. • Alcance de página: objetos que existen únicamente en la página en la que están declarados. • Tags library: un mecanismo de extensión de marcas para crear tags personalizados. • Alcance de petición: existentes durante el tiempo de vida de una petición (request). • Alcance de sesión: existentes durante toda la sesión de navegación del cliente. © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS 7 © Diego C. Martínez - DCIC-UNS 8 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur Java Server Pages – objetos implícitos JSP – Secuencias de comandos – scripting Las secuencias de comandos (scripting) permite incluir código Java en un documento JSP. Alcance de aplicación application Representa el contenedor que ejecuta la JSP Expresión JSP Alcance de página config Opciones de configuración de la JSP exception La excepción que se pasa a la JSP out Objeto JSPWriter para salida de texto page this para la instancia actual de la JSP pageContext Permite acceso a objetos implícitos response Representa la respuesta al cliente <%= expression %>: La Expresión es evaluada y situada en la salida. El equivalente XML es <jsp:expression> expression </jsp:expression>. Las variables predefinidas son request, response, out, session, application, config, y pageContext. Scriptlet JSP <% code %>: Declaración JSP Alcance de petición request <%! code %>: Representa la petición del cliente Alcance de sesión session 9 JSP – Secuencias de comandos – scripting 10 © Diego C. Martínez - DCIC-UNS JSP - Acciones … <body> <% // iniciar scriptlet String nombre = request.getParameter( "nombrePila" ); if ( nombre != null ) { %> <h1> Hola <%= nombre %>, <br /> ¡Bienvenido a las JavaServer Pages! </h1> <% // continuar scriptlet } // fin de instrucción if else { %> <form action = "bienvenida.jsp" method = "get"> <p>Escriba su nombre de pila y oprima Enviar</p> Las acciones permiten el acceso a tareas comunes que se realizan en una JSP, como interactuar con JavaBeans, incluir contenido de otros recursos o derivar peticiones. Las acciones están delimitadas por los tags <jsp:acción> </jsp:acción> En donde acción es el nombre de la acción estándar. Si nada existe entre los dos tags puede usarse la sintaxis abreviada de XML de elemento vacío <jsp:acción /> <p><input type = "text" name = "nombrePila" /> <input type = "submit" value = "Enviar" /> </p> </form> <% // continuar scriptlet } // fin de instrucción else %> </body> © DCM-DCIC-UNS El código se inserta en el cuerpo de la clase del servlet, fuera del método service. El equivalente XML es: <jsp:declaration> code </jsp:declaration>. Representa la información de sesión del cliente © Diego C. Martínez - DCIC-UNS © Diego C. Martínez - DCIC-UNS El código se inserta en el método service. El equivalente XML es: <jsp:scriptlet> code </jsp:scriptlet>. Existen acciones predefinidas (estándar)… 11 © Diego C. Martínez - DCIC-UNS 12 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur JSP - Acciones JSP - Acciones jsp:setProperty <jsp:setProperty att=val*/> Selecciona las propiedades del bean, bien directamenteo o designando el valor que viene desde un parámetro de la petición. Los atributos legales son: name="beanName" property="propertyName|*" param="parameterName" value="val“ jsp:include <jsp:include page="relative URL" flush="true"/> Incluye un fichero en el momento en que la página es solicitada. En algunos servidores, el fichero incluido debe ser un fichero HTML o JSP, según determine el servidor. jsp:useBean <jsp:useBean att=val*/> <jsp:useBean att=val*> ... </jsp:useBean> Encuentra o construye un Java Bean. Los posibles atributos son: id="name" scope="page | request | session | application" class="package.class" type="package.class" beanName="package.class“ © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS jsp:getProperty <jsp:getProperty name="propertyName" value="val"/> Recupera y obtiene las propiedades del Bean. jsp:forward <jsp:forward page="relative URL"/> Reenvía la petición a otra página. 13 © Diego C. Martínez - DCIC-UNS 14 1