Documentos de Académico
Documentos de Profesional
Documentos de Cultura
https://sway.office.com/eYWFYrezXyvESxRT?ref=Link
Talleres 25%
Evaluación 60%
Autoevaluación 15%
JAVA EE
MVC y JSP
http://www.w3big.com/es/jsp
/default.html
http://www.w3big.com/es/js/
default.html
¿Qué es JAVA?
Es un lenguaje de programación
para añadir interactividad,
dinamismo entre otras
funcionalidades al contenido de
una pagina web. El código de
JavaScript se ejecuta en el
navegador de internet de la
computadora
Objetivo de java
<button type="button"
onclick="document.getElementById('AcaSale').innerHTML
= Date()">
Prima para mostrar la hora y fecha.</button>
<p id="AcaSale"></p>
</body>
</html>
Por cada nuevo ejemplo
cree un nuevo archivo
html en el proyecto
<!DOCTYPE html> JavaScript en el Encabezado
<html>
<head>
<script>
function FuncionDarClick() {
document.getElementById("AcaSale").innerHTML =
"Este es el texto que aparece despues de dar click en el
boton.";
}
</script>
</head>
<body>
<h1>Bienvenido a mi Pagina</h1>
<p id="AcaSale">Este es el primer texto que aparece.</p>
<button type="button"
onclick="FuncionDarClick()">Prueba la Funcion</button>
</body>
</html>
JavaScript en el Cuerpo
<!DOCTYPE html>
<html>
<body>
<h1>Bienvenido a mi pagina</h1>
<p id="AcaSale">El texto inicial.</p>
<button type="button"
onclick="funcionDarClick()">Cambie el texto</button>
<script>
function funcionDarClick() {
document.getElementById("AcaSale").innerHTML =
"Texto Cambiado.";
}
</script>
</body>
</html>
Desde un Archivo Externo
function funcionDarClick() {
document.getElementById("AcaSale").innerHTML
= "Texto Cambiado.";
}
Desde un Archivo Externo
<!DOCTYPE html>
<html>
<body>
<h1>Bienvenido a mi Pagina</h1>
<p id="AcaSale">El texto original.</p>
<button type="button"
onclick="funcionDarClick()">Intentelo</button>
<script src="index4.js"></script>
</body>
</html>
Escritura de Notaciones
<!DOCTYPE html>
<html>
<body>
<p>Numeros y cadenas literales con o sin notacion.</p>
<p id="AcaSale1"></p>
<p id="AcaSale2"></p>
<p id="AcaSale3"></p>
<p id="AcaSale4"></p>
<script>
document.getElementById("AcaSale1").innerHTML = 123e5;
document.getElementById("AcaSale2").innerHTML =
32100000;
document.getElementById("AcaSale3").innerHTML = 'Comilla
sencilla';
document.getElementById("AcaSale4").innerHTML =
"Comilla Doble";
</script>
</body>
Escritura de Expresiones, Variables, Operadores
<!DOCTYPE html>
<html>
<body>
<p>Evaluacion de Expresiones</p> <p id="AcaSale"></p>
<p>Evaluacion de Variables</p> <p id="AcaSale1"></p>
<p>Evaluacion de Operadores</p> <p id="AcaSale2"></p>
<p>Evaluacion de Asignaciones</p> <p id="AcaSale3"></p>
<script>
document.getElementById("AcaSale").innerHTML = 5 * 10;
var cad;
cad = 6;
document.getElementById("AcaSale1").innerHTML = cad;
document.getElementById("AcaSale2").innerHTML = (5 + 6) * 10;
var x, y, z;
x=6
y = 8;
z = (x + y) * 10;
document.getElementById("AcaSale3").innerHTML = z;
</script>
</body>
</html>
Visualizar Variables y Objetos
<!DOCTYPE html>
<html>
<body>
<p id="SaleVars"></p>
<p id="SaleObjeto"></p>
<script>
var var1 = "Quien es?";
var var2 = 'Soy yo !! ';
document.getElementById("SaleVars").innerHTML =
var1 + "<br>" +
var2 + "<br>";
var animal = {
nombre: "Fifi",
raza: "Pastor Aleman",
edad: 2,
peloColor: "Cafe"
};
document.getElementById("SaleObjeto").innerHTML =
animal.nombre + " tiene " + animal.edad + " años.";
</script>
</body>
</html>
Java Server Pages JSP
Las JSP
Son páginas HTML a las que se le inserta código que produce servlets
Se usan cuando la parte estática de la página que se debe generar es
relativamente importante (la parte que no cambia)
Al cargarse una página JSP esta se compila, se genera el servlet y se
ejecuta
Por esto, la primera invocación a una JSP demora más que las
siguientes
Contenido de una JSP
else
out.println("Using background color WHITE..");
%>
</BODY> </HTML>
Usando Scriptlets con código HTML
Lo siguiente
<% if (Math.random() < 0.5) { %>
Have a <B>nice</B> day!
<% } else { %>
Have a <B>lousy</B> day!
<% } %>
<TABLE BORDER=2>
<% for ( int i = 0; i < n; i++ ) {%>
<TR> <TD>Number</TD> <TD>
<%= i+1 %>
</TD> </TR>
<% } %>
</TABLE>
Se traduce en ...
out.println(“<TABLE BORDE=2>”);
for ( int i = 0; i < 10; i++ ) {
out.write(" \n");
out.write(" <TR> <TD>Number</TD> <TD>\n");
out.print( i+1 );
out.write(“ \n");
out.write("</TD> </TR> \n");
}
out.write(" \n");
out.write("</TABLE> \n");
Declaraciones
• No generan output, se usan para declarar
variables que más tarde serán usadas en
expresiones o scriptlets
• Una declaración tiene la siguiente forma:
<%! Java Code %>
• Son variables que se declaran globales para
todo el servlet
JSP por sus siglas en ingles Java Server Pages es una tecnología del lado del
servidor que nos permite hacer aplicaciones web.
Como ya lo hemos dicho en la clase anterior una aplicación web es una página
web generada dinámicamente, es decir, que se genera de acuerdo a la
interacción con el usuario.
Como se ha dicho anteriormente JSP es una Página HTML con código Java
embebido o integrado, similar a como se maneja PHP.
En este caso Java funciona similar, sus etiquetas de apertura y cierre son <% y
%>.
JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page Example 1</title>
</head>
<body>
<h1>Hello Student!!</h1>
<%=new java.util.Date()%>
</body>
</html>
Tipo de código JSP
Expresiones
• <%= expresión Java %>
Scriptlets
• <% varias líneas de código Java %>
Declaraciones
• <%! Declaración de variables o métodos %>
Expresiones
Entre los tipos de peticiones HTTP más conocidas están: GET y POST, las cuales sirven para pasar
información (parámetros) del cliente al servidor.
Petición GET
La petición GET se utiliza para solicitar datos que están en el servidor, por ejemplo, para solicitar
una página.
Las peticiones GET se pueden guardar en el historial de navegación, se pueden indexar en los
buscadores, o agregar a enlaces favoritos. La información que se envía en el GET normalmente es
una liga. Get contiene mucho menos información que POST.
El tag ancla: <a href=”paginaDestino.jsp”> </a> siempre utiliza el método GET para solicitar la
página destino.
Petición POST
La petición POST sirve para enviar información al servidor para que ésta sea procesada. Una vez que
se procesa, se envía en la respuesta al navegador alguna página con información.
El valor de los parámetros que proporcionó el usuario en una petición POST, se encuentran dentro
de un objeto llamado request.
Ejemplo
<%
// Este es un scriptlet
// Es código en Javaque captura los parámetros enviados
// en el objeto "request"
String nombre = request.getParameter("nombre");
String color = request.getParameter("color");
String color = request.getParameter("color");
%>
Ejercicio
Experto Universitario Java Enterprise
Sesión: JSTL
Experto Universitario Java Enterprise
Índice
• Introducción: taglibs y JSTL
• La librería Core
• La librería SQL
• La librería de internacionalización
• Otras librerías
Experto Universitario Java Enterprise
Librerías de tags
• Una librería de tags (taglib) es un conjunto de etiquetas HTML
personalizadas que permiten encapsular acciones mediante
código Java
Qué es JSTL
• JSTL (Java Server Pages Standard Tag Library) es un grupo de
librerías de tags estándar que encapsula varias
funcionalidades: SQL, XML, internacionalización...
• Además, dispone de un lenguaje de expresiones que utiliza en sus
etiquetas (el mismo que tiene JSP 2.0)
• Al ser estándar funciona igual en todos los servidores, y
los contenedores pueden reconocerla y optimizar sus
implementaciones
• Disponible a partir de servlets 2.3 y JSP 1.2
Librerías
disponibles
Área URI Prefijo
XML http://java.sun.com/jsp/jstl/xml x
Ejemplo de uso
• Se coloca al principio de cada página JSP la directiva
taglib con cada librería a utilizar
<%@taglib uri=“http://...” prefix=“c” %>
Introducción
El tag out
• Ejemplo:
<c:out value="${datos.ciudad}" default="desconocida"/>
Experto Universitario Java Enterprise
El tag set
• Establece el valor de un atributo en cualquier sección
(param, header, cookie...)
<c:set value="valor" var="variable" [scope="page|request|session|application"]/>
<c:set var="variable" [scope="page|request|session|application"]>
Valor
</c:set>
• Ejemplo:
<c:set var=“foo” value=“2”/>
<c:set value=“19” target=“${persona}” property=“edad”/>
<c:out value=“foo vale ${foo} y edad vale ${persona.edad}”/>
Experto Universitario Java Enterprise
El tag if
• Ejemplo:
<c:if test="${visitas > 1000}">
<h1>¡Mas de 1000 visitas!</h1>
</c:if>
Experto Universitario Java Enterprise
El tag choose
• Ejecuta una de las opciones when que tiene (la que cumpla
la condición), o la otherwise si ninguna la cumple. Similar
al switch de C o Java
<c:choose>
<c:when test="condicion1">codigo1</c:when>
<c:when test="condicion2">codigo2</c:when>
...
<c:when test="condicionN">codigoN</c:when>
<c:otherwise>codigo</c:otherwhise>
</c:choose>
• Ejemplo:
<c:choose>
<c:when test="${a < 0}"><h1>a menor que 0</h1></c:when>
<c:when test="${a > 10}"><h1>a mayor que 10</h1></c:when>
<c:otherwise><h1>a entre 1 y 10</h1></c:otherwhise>
</c:choose>
Experto Universitario Java Enterprise
El tag forEach
• Repite su código recorriendo un conjunto de objetos o
un número de iteraciones
<c:forEach [var="variable"] items="conjunto" [varStatus="variableEstado"]
[begin="comienzo"] [end="final"] [step="incremento"]>
codigo
</c:forEach>
• Ejemplo:
<c:forEach var="item" items="${cart.items}">
<c:out value="${item.valor}"/>
</c:forEach>
Experto Universitario Java Enterprise
El tag forTokens
• Similar a forEach pero recorre una cadena, separando por
los delimitadores indicados
• Ejemplo:
<c:forTokens var="item" items="un#token otro#otromas" delims="# ">
<c:out value="${item}"/>
</c:forEach>
<c:out value=“${varurl}”/>
Ejemplo de uso
<html>
<body>
<form action="request.jsp">
Nombre: <input type="text" name="nombre"><br>
Descripcion: <input type="text" name="descripcion"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Introducción
• La librería SQL permite acceder y manipular información de
bases de datos. Podremos:
• Establecer la base de datos a la que acceder
• Realizar consultas a bases de datos (SELECT)
• Acceder a los datos de las consultas realizadas
• Actualizar la BD (INSERT, UPDATE, DELETE)
• Agrupar operaciones en una sola transacción
El tag setDataSource
• Permite definir el objeto DataSource con el que trabajar,
y dejarlo asignado a una variable
<sql:setDataSource {dataSource="DataSource" | url="url" [driver="driver"]
[user="usuario"] [password="password"]}
[var="variable"] [scope="page|request|session|application"]
/>
El tag query
• Permite definir una consulta SELECT
El tag update
• Permite definir INSERT, UPDATE o
DELETE
<sql:update sql="actualizacion"
[dataSource="DataSource"] [var="variable"]
[scope="page|request|session|application"]/>
<sql:update sql="actualizacion"
[dataSource="DataSource"] [var="variable"]
[scope="page|request|session|application"]>
<sql:param ...> ...
</sql:update>
El tag transaction
• Permite agrupar dentro varios query y/o update que
forman una transacción unitaria
El tag param
• Se utiliza internamente en query y update si la consulta
o actualización necesita parámetros
Ejemplo de uso
<!-
‐– OBTENEMOS LA CONEXIÓN ‐-‐->
<sql:setDataSource url=“jdbc:mysql//localhost/miBD”
driver=“com.mysql.jdbc.Driver” user=“usuario1”
password=“password1” var=“varBD1” />
<!-
‐– REALIZAMOS LA CONSULTA/ACTUALIZACION ‐-‐->
<sql:query sql=“SELECT * FROM datos WHERE nombre=?
AND descripcion=?” var=“var1” dataSource=“$
{varBD1}”>
<sql:param value=“pepe”/>
<sql:param value=“mi descripcion”/>
</sql:query>
<!-
‐– RECORREMOS LOS DATOS ‐-‐->
<c:forEach var=“item” items=“${var1.rows}”>
<c:out value=“${item.nombre}”/>
</c:forEach>
Experto Universitario Java Enterprise
La librería de
internacionalización
• Permite adaptar aplicaciones Web a convenciones de idioma,
formato, moneda o fecha de una determinada región
El tag formatNumber
• Permite dar formato a un número e indicar con
cuántos decimales queremos que se muestre
El tag formatDate
• Permite dar formato a una fecha e indicar con qué
formato queremos que se muestre
XML y funciones
• La librería XML se emplea para acceder y procesar el contenido
de ficheros XML. Normalmente suele utilizarse con el prefijo
“x”. En ella existen
• Tags principales: para explorar el fichero XML
• Tags de control de flujo
• Tags de transformación: que aplican hojas XSLT