JSP y JSTL
Procedimiento y Resultados:
1.
primer jsp
primer.jsp
<html>
<body>
<%
String
mensaje = "D.S.U.N.A.L.M - Java Web";
out.println(mensaje);
%>
</body>
</html>
2.
EXPRESIONES
expresiones.jsp
<html>
<body>
<%=
new java.util.Date()%>
</body>
</html>
expresiones2.jsp
<html>
<body>
<%
String
curso = "Java Web";
%>
<%=curso%>
</body>
</html>
3. DECLARACIÓN
declaracion.jsp
<html>
<body>
<%!
int count = 0; %>
<%
count++; %>
Ud. es el visitante <%=count%>
</body>
</html>
4. COMENTARIOS
comentarios.jsp
<html>
<body>
Comentarios
<%-- Comentario 1 --%>
<!-- Comentario 2 -->
<%
// Comentario 3
/* Comentario 4
*/
%>
</body>
</html>
5.
IMPORT
importar.jsp
<%@page
import="java.util.*" %>
<html>
<body>
<%
Date fecha = new Date();
String
total=fecha.getDate()+"-"+(fecha.getMonth()+1)+"-" +
(fecha.getYear()+1900);
%>
<%=total%>
</body>
</html>
6. mostrando
un collection
mostrarcollection.jsp
<%@page import="java.util.*"%>
<html>
<body>
<%
Collection<String> c = new
ArrayList<String>();
c.add("servlets");
c.add("jsp");
c.add("beans");
c.add("tags");
for(String x : c){
out.print(x);
}
%>
</body>
</html>
- Ejercicio: Enviar un Collection de un Servlet a un JSP
Persona.java
package
ejercicio;
public
class Persona {
private String nombre;
private String
apellidos;
public
Persona(){
}
public
Persona(String pNombre, String pApellidos) {
this.nombre
= pNombre;
this.apellidos = pApellidos;
}
public String getNombre() {
return this.nombre;
}
public
void setNombre(String nombre) {
this.nombre =
nombre;
}
public String
getApellidos() {
return
this.apellidos;
}
public void
setApellidos(String apellidos) {
this.apellidos = apellidos;
}
}
MostrarPersonasServlet.java
package
ejercicio.servlets;
…
…
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws
ServletException, IOException {
Persona p1
= new Persona("erasmo", "saavedra robles");
Persona p2
= new Persona("juan", "rodriguez condezo");
Persona p3
= new Persona("jose", "rodriguez condezo");
Collection<Persona> c = new
ArrayList<Persona>();
c.add(p1);
c.add(p2);
c.add(p3);
request.setAttribute("personas",
c);
RequestDispatcher rd =
request.getRequestDispatcher("personas.jsp");
rd.forward(request, response);
}
…
personas.jsp
<%@page
import="ejercicio.Persona, java.util.*"%>
<html>
<body>
<table border="1">
<tr><th>Nombre</th><th>Apellidos</th></tr>
<%
Collection<Persona> c =
(ArrayList<Persona>)request.getAttribute("personas");
for(Persona p : c) {
out.println("<tr><td>");
out.println(p.getNombre());
out.println("</td><td>");
out.println(p.getApellidos());
out.println("</td></tr>");
}
%>
</table>
</body>
</html>
8. EJERCICIO
INCLUDe
inclusion.jsp
<html>
<body>
<h3>Inclusión en compilación</h3>
<%@include file="tabla.jsp" %>
<h3>Inclusión en ejecución</h3>
<jsp:include
page="tabla.jsp"/>
</body>
</html>
tabla.jsp
<table border="1">
<tr><td colspan="2">Tabla de
Prueba</td></tr>
<tr><td>Celda
1</td><td>Celda 2</td></tr>
<tr><td>Celda
3</td><td>Celda 4</td></tr>
<tr><td>Celda
5</td><td>Celda 6</td></tr>
</table>
9. VARIABLE
implicita request
formulario.jsp
<html>
<body>
<form action="autentifica.jsp" method="post">
Codigo: <input type="text" name="cod"><br>
Clave: <input type="password"
name="cla"><br>
<input type="Submit"
value="Aceptar">
</form>
</body>
</html>
autentifica.jsp
<html>
<body>
<%
String codigo = request.getParameter("cod");
String clave = request.getParameter("cla");
String mensaje="";
if("tecsup".equals(codigo) &&
"javaweb".equals(clave)) {
mensaje="Bienvenido "+codigo;
} else {
mensaje="Codigo o Clave Incorrecta";
}
%>
<%=mensaje%>
</body>
</html>
10.
VARIABLES IMPLICITA session
iniciar-contador.jsp
<html>
<body>
<%
session.setAttribute("visitas","0"); %>
<h1>Contador de visitas iniciado!</h1>
<a href="contador.jsp">Continuar</a>
</body>
</html>
contador.jsp
<html>
<body>
<%
int nro =
Integer.parseInt((String)session.getAttribute("visitas"));
nro++;
session.setAttribute("visitas",""+nro);
%>
<h1>Página visitada <%=nro%> veces (sólo en esta
sesión).</h1>
</body>
</html>
- EJERCICIO: AREA
<html>
<body>
Usando PI igual a
<%=pi%>, el área del círculo<br>
con un radio de 3
es <%=area(3)%>
<%!
double
area(double r) {
return r*r*pi;
}
%>
<%!
final double pi=3.14159; %>
</body>
</html>
JSTL
Copiar las librerías
jstl.jar y standard.jar
1. Test1.jsp
<%@
taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:set
scope="session" var="name" value="<b>David</b>"/>
Bienvenido <c:out value="Hola ${sessionScope.name}"
default="Invitado" escapeXml="false"/>
</body>
</html>
2. Test2.jsp
<%@
taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String
nombre = "david desde variable de clase";
%>
<c:set
var="nom" value="<%=nombre %>"/>
<c:out
value="${pageScope.nom}"/>
<%
session.setAttribute("nombre", "david");
pageContext.setAttribute("nombre", "juan");
request.setAttribute("nombre", "jose");
application.setAttribute("nombre", "toti");
%>
<html>
<body>
<c:out value="${sessionScope.nombre}" />
<br/>
<c:out value="${pageScope.nombre}" />
<br/>
<c:out value="${requestScope.nombre}" />
<br/>
<c:out value="${applicationScope.nombre}" />
<br/>
1
<c:out value="${pageContext}" />
<br/>
2
<c:out value="${pageContext.request.method}"/>
<br/>
3
<c:out value="${pageContext.request.queryString}"/>
<br/>
4
<c:out value="${pageContext.servletContext.serverInfo}"/>
</body>
</html>
Pregunta.java
package
tarea04.vo;
public
class Pregunta {
private int idPregunta;
private String texto;
//
Generar sus métodos set y get
}
3. Test3.jsp
<%@
taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="tarea04.vo.Pregunta,java.util.*"%>
<html>
<body>
<%
Pregunta p1 = new Pregunta();
p1.setIdPregunta(1);
p1.setTexto("¿Qué es jstl?");
Pregunta p2 = new Pregunta();
p2.setIdPregunta(2);
p2.setTexto("¿Qué es EL?");
Collection<Pregunta> c = new ArrayList<Pregunta>();
c.add(p1);
c.add(p2);
request.setAttribute("preguntas", c);
%>
<c:forEach items="${requestScope.preguntas}"
var="p" varStatus="i" >
${i.count}.- ${p.texto} <br/>
</c:forEach>
</body>
</html>
4. Test4.jsp
<%@
taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@
taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"
%>
<html>
<body>
<c:set
var="titulo" value="Este es el TITULO de la PAGINA"/>
${fn:toUpperCase(titulo)}
<br/>
${fn:substring(titulo, 2,10)}
<br/>
${fn:replace(titulo,
"TITULO", "TITLE")}
<br/>
${fn:escapeXml("<foo>body of foo</foo>")}
</body>
</html>
5. Test5.jsp
<%@
taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<h3>IF</h3>
<c:if test='${param.ok == "yes"}'>
Hola <c:out value="${param.name}!"/>
</c:if>
<h3>CHOOSE</h3>
<c:choose>
<c:when test='${param.curso ==
"java"}'>
Curso de
Java
</c:when>
<c:when test='${param.curso == "php"}'>
Curso de
PHP
</c:when>
</c:choose>
<h3>FOREACH</h3>
<table>
<tr><th>Value</th>
<th>Square</th></tr>
<c:forEach var="x" begin="0" end="10"
step="2">
<tr><td><c:out
value="${x}"/></td>
<td><c:out value="${x *
x}"/></td></tr>
</c:forEach>
</table>
<c:set var="minombre" value="${param.minombre}Rodriguez"/>
<a href="<c:url value="mock.jsp?a=${minombre}"/>">hazme
click</a>
<br/>
<c:import url="http://www.gooogle.com"/>
</body>
</html>
6. Test6.jsp
<%@
taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
<a
href="<c:url value="mock.jsp"><c:param name="n"
value="a"/></c:url>">ir a</a>
<c:out
value="<h3>" escapeXml="true"/>
</body>
</html>
ETIQUETAS
PERSONALIZADAS
- PRIMERA ETIQUETA
PrimerTag.java
package
laboratorio6.tag;
import
javax.servlet.jsp.JspException;
import
javax.servlet.jsp.tagext.TagSupport;
public
class PrimerTag extends TagSupport {
public int doStartTag() throws JspException {
try
{
pageContext.getOut().print("Esta es mi primera etiqueta.");
} catch
(Exception ex) {
throw
new JspException("Error al crear la primera etiqueta");
}
return
SKIP_BODY;
}
}
/WEB-INF/tld/EtiquetasPersonalizadas.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>EtiquetasPersonalizadas</short-name>
<uri>/WEB-INF/EtiquetasPersonalizadas</uri>
<tag>
<name>mensaje</name>
<tag-class>laboratorio6.tag.PrimerTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
test1.jsp
<%@taglib
uri="/WEB-INF/EtiquetasPersonalizadas"
prefix="mistag"
%>
<html>
<body>
<mistag:mensaje/>
</body>
</html>
- ETIQUETA PONER EN MAYÚSCULA
PonerEnMayusculaTag.java
package
laboratorio6.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class PonerEnMayusculaTag extends BodyTagSupport {
public int doStartTag() throws JspException {
return EVAL_BODY_BUFFERED;
}
public int doAfterBody() throws JspException {
try {
JspWriter out = bodyContent.getEnclosingWriter();
String text = bodyContent.getString();
out.print(text.toUpperCase());
} catch (IOException e){
throw new JspException(e.getMessage());
}
return SKIP_BODY;
}
}
/WEB-INF/tld/EtiquetasPersonalizadas.tld
…
<tag>
<name>PonerEnMayuscula</name>
<tag-class>laboratorio6.tag.PonerEnMayusculaTag</tag-class>
<body-content>JSP</body-content>
</tag>
…
test2.jsp
<%@taglib
uri="/WEB-INF/EtiquetasPersonalizadas"
prefix="mistag"
%>
<html>
<body>
<mistag:PonerEnMayuscula>Curso
de Java</mistag:PonerEnMayuscula>
</body>
</html>
- ETIQUETA QUE MUESTRA UN ARREGLO COMO TABLA
MostrarArregloComoTablaTag.java
package
laboratorio6.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
public class MostrarArregloComoTablaTag extends TagSupport {
private String nombreAtributo;
private String nombreScope;
public void setNombreAtributo(String nombreAtributo){
this.nombreAtributo =
nombreAtributo;
}
public
void
setNombreScope(String nombreScope){
this.nombreScope = nombreScope;
}
private int getScopeAsInt(){
if("request".equals(nombreScope)){
return PageContext.REQUEST_SCOPE;
}
if("session".equals(nombreScope)){
return PageContext.SESSION_SCOPE;
}
if("application".equals(nombreScope)){
return PageContext.APPLICATION_SCOPE;
}
return PageContext.PAGE_SCOPE;
}
public int doStartTag() throws JspException {
try {
String[] cadenas = (String[])pageContext.getAttribute(nombreAtributo, getScopeAsInt());
JspWriter out = pageContext.getOut();
out.print("<table border=\"1\">");
for(int i=0; i<cadenas.length; i++){
out.print("<tr><td>"+cadenas[i]+"</td></tr>");
}
out.print("</table>");
} catch (Exception e){
throw new JspException(e.getMessage());
}
return SKIP_BODY;
}
}
/WEB-INF/tld/EtiquetasPersonalizadas.tld
…
<tag>
<name>MostrarArregloComoTabla</name>
<tag-class>laboratorio6.tag.MostrarArregloComoTablaTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>nombreAtributo</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>nombreScope</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
…
test3.jsp
<%@taglib
uri="/WEB-INF/EtiquetasPersonalizadas"
prefix="mistag"
%>
<html>
<body>
<%
String[] cadenas = {"uno",
"dos",
"tres"};
request.setAttribute("cadenas",
cadenas);
%>
<mistag:MostrarArregloComoTabla
nombreAtributo="cadenas"
nombreScope="request"/>
</body>
</html>
- EJERCICIO: ETIQUETA PERSONALIZADA
Escribir una
etiqueta que realice lo siguiente:
Página
JSP:
<%@taglib
prefix="c" uri="/WEB-INF/tags/CabeceraTag.tld"%>
<%@taglib prefix="t"
uri="/WEB-INF/tags/TablaTag.tld"%>
<%@taglib
prefix="p" uri="/WEB-INF/tags/PieTag.tld"%>
<c:cabecera
titulo="Tecsup" keyword="Programación en Java">
Esta es la página
principal
</c:cabecera>
<h1>Contenido
de mi página</h1>
<%
String[][] productos
= { {"1","libro"},
{"2","borrador"},
{"3","lapicero"}};
pageContext.setAttribute("productos",
productos);
%>
<t:tabla
arreglo="productos"/>
<p:pie
contenido="Copyright @ 2005 por Tecsup"/>
Resultado en
HTML:
<html>
<head>
<title>Tecsup</title>
<meta name=”keyword” content=”Programación en Java”/>
</head>
<body>
<b>E</b>sta <b>E</b>s <b>L</b>a <b>P</b>ágina <b>P</b>rincipal
<br/>
<h1>Contenido de mi página</h1>
<table
border=”1”>
<tr><th>Id</th><th>Descripción</th>
<tr><td>1</td><td>Libro</td></tr>
<tr><td>2</td><td>Libro</td></tr>
<tr><td>3</td><td>Lapicero</td></tr>
</table>
<h3>Copyright @ 2005 por Tecsup</h3>
</body>
</html>
Conclusiones:
En
la presente sesión, se detalló los elementos y las directivas más importantes de
los JSP. Las páginas JSP permiten crear contenido dinámico. Los JSP y los
Servlets trabajan en conjunto para crear páginas dinámicas
No hay comentarios:
Publicar un comentario