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&nbsp;att=val*/>
<jsp:useBean&nbsp;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