JSP - U

Anuncio
APLICACIONES EMPRESARIALES CON JEE
Profesores: Andrés Farías
Objetivos







INTRODUCCIÓN GENERAL
Introducción
¿Qué es y para qué sirve?
 JSP
HTML





JSP
HTML

HTML
<%
%>
Introducción
Las Java Server Pages

JSP
.jsp

JSP
JSP

JSP



Introducción
JSP 2.0

JSP 2.0
1.2
 Simple Expression Language EL



Elementos JSP
Elementos de Script
Elementos JSP
Directivas JSP
Elementos JSP
Ejemplo de elementos JSP
(1/2)
<html><head><title>Elementos de JavaServer Pages</title></head>
<body><h1>Elementos de JavaServer Pages</h1>
<P>El siguiente es contenido dinámico generado con elementos JSP:
<ul>
<li><B>JSP Expression:</B><BR>Tu hostname:
<%= request.getRemoteHost() %>.
<li><B>JSP Scriptlet.</B><BR>
<% out.println("Data adjunta al GET: " + request.getQueryString()); %>
<li><B>JSP Declaration (más una expresión).</B><BR>
<%! private int accessCount = 0;%>
Accesos a la página desde el inicio del server: <%= ++accessCount %>
<li><B>JSP Directive (más una expresión).</B><BR>
<%@ page import="java.util.*"%> Fecha actual: <%=new Date()%>
</ul>
</body>
</html>
Elementos JSP
Ejemplo de elementos JSP
(2/2)
Elementos JSP
Acciones JSP
SCRIPTS JSP
Scripts JSP

<%= <JavaExpression> %>

<expresion>
service()
out

<jsp:expression>
<JavaExpression>
</jsp:expression>

response out session application config
pageContext
request
Scripts JSP
Expresiones
(2/2)

 request HttpServletRequest
 response HttpServletResponse
 session HttpSession
request
 out PrintWriter
JspWriter

Your hostname: <%= request.getRemoteHost() %>
Scripts JSP: Expresiones
Un ejemplo simple
La parte de código
que se evalúa en el
Servidor.
Scripts JSP
Scriptlets JSP

<% <JavaStatement> %>


service()
<jsp:scriptlet>
<JavaStatement>
</jsp:scriptlet>
Scripts JSP: Scriptlets
Sintaxis



service()


print()
%\>

HTML
Java
%>
Scripts JSP: Scriptlets
Sintaxis

<% if (Math.random() < 0.5) { %>
Have a <B>nice</B> day!
<% } else { %>
Have a <B>lousy</B> day!
<% } %>

if (Math.random() < 0.5) {
out.println("Have a <B>nice</B> day!");}
else {
out.println("Have a <B>lousy</B> day!");}
Scripts JSP: Declaraciones
Sintaxis y uso

<%! <JavaStatement> %>






<%! private int accessCount = 0; %>
Accesses to page since server reboot:
<%= ++accessCount %>
Declaraciones
Sintaxis XML

%>
%\>

<jsp:declaration>
<JavaMemberDeclaration>
</jsp:declaration>
DIRECTIVAS JSP
page
include
<%@ ... %>
Directivas JSP
Resumen general
Directivas JSP
Directiva Page

<%@ page att="val" %>


 <jsp:directive.page att="val"\>
(1/3)
Directivas JSP
Directiva Page: Atributos legales
 import="package.class"
 contentType="MIME-Type"
 isThreadSafe="true|false“
 session="true|false"
 buffer="sizekb|none"
 autoflush="true|false"
 extends="package.class"
 info="message"
 errorPage="url"
 isErrorPage="true|false"
 language="java"
(2/3)
Directivas JSP
Directiva Include
(3/3)

<%@ include file="url" %>


 <jsp:directive.include
file="url" \>
DIRECTIVA PAGE <%@ PAGE … %>
Directivas JSP
Directiva: page
Atributos: import & contentType

 import="package.class“ o
import="package.class1,...,package.classN".


import

 ContentType = "MIME-Type" o contentType =
"MIME-Type; charset = Character-Set"

MIME

text/html
“response.setContentType”
Directiva: page
Atributos: Threads& Sesiones

 isThreadSafe="true|false"


SingleThreadModel

 session="true|false"

true
session
HttpSession

session
Directiva: page
Atributos: buffer & autoflush

 buffer="sizekb|none"

out
JspWriter


 autoflush="true|false"

true


buffer="none"
Directiva: page
Atributos: Extends, Info& ErrorPage

 extends="package.class"



 info="message"

string
getServletInfo

 errorPage="url"

Throwable
Directiva: page
Atributos: isErrorPage & Language

 isErrorPage="true|false"



 language="java"


false
DIRECTIVA PAGE <%@ INCLUDE … %>
Directivas JSP
Directiva: include
Atributos: file

<%@ include file=“<urlRelativa>” %>




ACCIONES JSP
VARIABLES PREDEFINIDAS
Acciones JSP
Variables predefinidas
La petición: request

request

HttpServletRequest

getParameter()



GET POST HEAD
cookies Referer
ServletRequest
HttpServletRequest
Variables predefinidas
La respuesta: response



response
HttpServletResponse
stream
Variables predefinidas
La salida: out


out
PrintWriter

JspWriter
PrintWriter


out
Variables predefinidas
La sesión: session


session
HttpSession


session
session
Variables predefinidas
Varios: application, Config & PageContext

application


ServletContext
getServletConfig().getContext()
config


ServletConfig
pageContext

PageContext


page


this
JspWriters
ACCIONES
Acciones JSP
Acciones
Conceptos Generales


Sintaxis
Acción Include

jsp:include

 <jsp:include page="relative URL" flush="true"/>



Sintaxis
Acciones: jsp:useBean

 <jsp:useBean att=val*/>
 <jsp:useBean att=val*>
 ...
 </jsp:useBean>


 id="name"
 scope="page|request|session|application"
 class="package.class"
 type="package.class"
 beanName="package.class"
Sintaxis
Acciones sobre beans

jsp:setProperty

 <jsp:setProperty att=val*/>







name="beanName"
property="propertyName|*"
param="parameterName"
value="val"
jsp:getProperty

 <jsp:getProperty name="propertyName" value="val"/>

Sintaxis
Acciones sobre beans

jsp:forward

 <jsp:forward page="relative URL"/>


jsp:plugin

 <jsp:plugin attribute="value"*> ... </jsp:plugin>

OBJECT
EMBED
Acciones
include
 jsp:include

 <jsp:include page="relative URL" flush="true" />

include


Acciones: useBean
Sintaxis
 jsp:useBean
JavaBean
<jsp:useBean id="name" class="package.class" />

class
id

jsp:setProperty
id

jsp:getProperty
Acciones: useBean
Uso

<jsp:useBean id="name" class="package.class" />

<jsp:useBean ...> Body </jsp:useBean>
Body

jsp:useBean
Acciones: useBean
Atributos
 id


 class
id
scope

 scope


 type
page, request, session,
application.

 beanName


type
beanName
class
Acciones: setProperty
Uso



useBean
<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName“
property="someProperty" ... />
Acciones: setProperty
Uso

(2/2)
useBean
<jsp:useBean id="myName“ ... >
...
<jsp:setProperty name="myName"
property="someProperty" ... />
</jsp:useBean>

Acciones: setProperty
Atributos
(1/2)
 name

jsp:useBean
jsp:setProperty
 property

*
 value

valueOf
value
param
Acciones: setProperty
Atributos
 param



<jsp:setProperty
name="orderBean“
property="numberOfItems"
param="numItems" />

(2/2)
EL: SIMPLE EXPRESSION LANGUAGE
Simple Expression Language (SLE)
Introducción







 <%@ page isScriptingEnabled="true|false"
isELEnabled="true|false"%>
Sintaxis EL
Expresiones: literales

 ${expr}
expr






true false
Integer
Floating point
String
null

${false} <%-- evaluates to false --%>
${3*8}
Sintaxis EL
Expresiones: operadores
 ${expr}
expr





+ - * / div % mod and && or || ! not
== eq != ne < lt < gt <= le >= ge
empty
null

func


A ? B: C
${ (6 * 5) + 5 } <%-- evalua a 35 --%>
${empty name}
args
0
Sintaxis EL
Expresiones: objetos implícitos
 ${expr}
expr

 pageContext

response session out servletContext
request
: ${pageContext.response}

 param

$(param.name)
<-> request.getParameter (name)
 paramValues

${paramvalues.name) <-> request.getParamterValues(name )
 header

${header.name} <-> request.getHeader(name)
 headerValues

${headerValues.name}
<-> request.getHeaderValues(name)
Sintaxis EL
Expresiones: objetos implícitos
 ${expr},
expr

 cookie

${cookie.name.value} 
 initParam

initParam.name 
ServletContext.getInitparameter(String name)
 pageScope 
${pageScope.objectName}
${pageScope.objectName.attributeName}.
 requestScope
${requestScope.objectName}
${requestScope.objectName.attributeName}
 sessionScope
${sessionScope.name}
 applicationScope
Ejemplos EL
Expresiones simples y objetos implícitos
 ${amount + 5}



 ${order.amount + 5}


amount
order
${order['amount'] + 5}

<input type="text" name="ip"
value="${pageContext.request.remoteAddr}">
Ejemplos EL
Operador ?
<select name="artist">
<option value="1” ${param.artist == 1 ? 'selected' :
''}>
Vanessa Paradis
</option>
<option value="2" ${param.artist == 2 ? 'selected' :
''}>
Yan Tiersen
</option>
<option value="3" ${param.artist == 3 ? 'selected' :
''}>
Dave Matthews Band
</option>
</select>
PÁGINAS DE ERRORES
Páginas de Error JSP
Las clases de soporte

javax.servlet.error.exception

errorData
pageContext
 javax.servlet.jsp.ErrorData
 requestURI 
 servletName 
 statusCode 
 throwable 
Páginas de Error JSP
Ejemplo de Uso
<%@ page isErrorPage="true" contentType="text/html" %>
<%@ taglib prefix="log" uri="http://jakarta.apache.org/taglibs/log-1.0" %>
Disculpa, pero las cosas no funcionaron como estaban planeadas.
Registré tanto como supe del problema, asique esté tranquilo que mi
Maestro mirará el error tan pronto como esté sobrio.
<jsp:useBean id="now" class="java.util.Date" />
<log:fatal>
----${now}
Petición que falló: ${pageContext.errorData.requestURI}
código de status: ${pageContext.errorData.statusCode}
Exception: ${pageContext.errorData.throwable}
----</log:fatal>
Páginas de Error JSP
Declaración de la página de error

web.xml
...
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-code>500</exception-code>
<location>/error.jsp</location>
</error-page>
...
web.xml en JSP 2.0

web.xml


web.xml

web.xml

config>
<jsp-
Elemento jsp-config

<jsp-property-group>

...
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config>
...
Elemento jsp-config
Elemento
Descripción
<el-ignored>
Indica si ignorar o no las expresiones EL dentro de un JSP
correspondiente al patrón URL indicado. Por defecto es false.
<scripting-invalid>
Si es true no se pueden introducir scriplets en el JSP.
<page-encoding>
Indica la codificación de caracteres para un conjunto de JSPs
<include-coda>
Indica el path correspondiente a un fichero a añadir al final de
cada página JSP..
<include-prelude>
Lo mismo pero al comienzo de cada JSP.
<is-xml>
Si se asigna a true la sintaxis de los JSPs es en XML.
EJERCICIO PROPUESTO
Ejercicio práctico JSP





PREGUNTAS?
Descargar