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:
No hay comentarios:
Publicar un comentario