Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Problema 01
El objetivo del JSP será dentro de un formulario pedir el precio y la cantidad de una venta y al
hacer clic sobre un botón, mostrar sobre un textarea el monto a pagar :
Stringsprec = request.getParameter("precio");
El formulario solo lleva el método de envio (“post”) y no action, debido a que la acción se
realizara en el mismo JSP y no se llamara a otra pagina.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pagina JSP de Facturacion</title>
</head>
<body>
<form method="post" >
Digitarprecio : <input type="text" name="precio"><br>
Digitarcantidad : <input type="text" name="cantidad"><br>
<input type="submit" value="Facturar"><br>
<textarea rows= 10 cols=20>
<% if(request.getParameter("precio") != null &&
Request.getParameter("cantidad") != null)
{
String sprec = request.getParameter("precio");
intprec = Integer.parseInt(sprec);
String scant = request.getParameter("cantidad");
intcant = Integer.parseInt(scant);
intmonto = prec * cant;
String linea = "El monto a pagares : "+ monto;
out.println(""+linea);
}
%>
</textarea>
</form>
</body>
</html>
Problema 02
Como sabemos todos los servlets reciben como parámetros dos objetos :
request de la clase HttpServletRequest
response de la clase HttpServletResponse
El objeto request entre otras cosas contiene la dirección del programa llamante y para acceder
a esta información se utiliza uno de sus métodos :getRemoteAddr()
Como se ve cualquiera sea el método de llamada utilizado, en Netbeans, los métodos doPost y
doGet siempre llaman al método processRequest()
Problema 03
out.println("</body>");
out.println("</html>");
} finally
{
out.close();
}
Problema 04
<html>
<body>
<%
for (int i=1;i <= 10;i++)
{
out.print("==>"+ i + "<br>");
}
%>
</body>
</html>
Problema 05
<body>
<table border=1>
<tr>
<td>Numero</td>
<td>Tipo de numero</td>
</tr>
<%
int i,n;
String obs;
for(i=1;i<=10;i++)
{
n = (int)(Math.random()*10);
if(n%2==0)
obs="Par";
else
obs="Impar";
out.print("<tr>");
out.print("<td>"+ n +"</td>");
out.print("<td>"+ obs+"</td>");
out.print("</tr>");
}
%>
</table>
</body>
Problema 06
<body>
<table border=1>
<tr>
<td>Codigo</td>
<td>Foto</td>
</tr>
<%
int i,n;
String cod[]=new String[5];
cod[0]="A001";
cod[1]="A002";
cod[2]="A003";
cod[3]="A004";
cod[4]="A005";
for(i=0;i<Cod.length;i++)
{
%>
<tr>
<td><%=cod[i]%></td>
<td><img src="fotos/<%=cod[i]%>.jpg" width=60 eight=60></td>
</tr>
<% fotos es una carpeta que se debe crear
}
%> dentro del proyecto (en el WebPages)
</table>
</body>
</html>
Problema 07
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pagina JSP : Tabla</title>
</head>
<body>
<form method="get" >
Numero de Tabla de multiplicar :<input type="text" name="numTabla"><br>
<input type="submit" value="Mostrar tabla de multiplicar"><br><br>
Tabla de Multiplicar<br>
=====================================<br>
<textarea rows= 15 cols=30>
<% if(request.getParameter("numTabla") != null)
{
String snumTabla = request.getParameter("numTabla");
intnTab = Integer.parseInt(snumTabla);
String linea="";
for(inti=1; i<=12; ++i)
{
linea= linea +nTab+ " x "+i+" = "+ (nTab*i)+"\n";
}
out.println("\n"+linea);
}
%>
</textarea>
</form>
</body>
</html>
Problema 08
Para mostrar en pantalla, alineado a lado izquierdo un video, ubicar dentro del body del JSP :
<div style="position:absolute;left:50;top:50;">
<embed src="videos/navidad.wmv" width=450 height=350>
<br>
<center>
<font face="verdana" size="5">Terminator biblico</font>
</center>
</embed>
</div>
<body>
<p>
<A href="videos/navidad.wmv">Cargar video Terminator biblico</A>
</p>
</body>
getServletContext().getRequestDispatcher("/prog03.jsp").forward(request, response);
Problema 05
Construir un JSP para pedir dos números, los cuales se enviaran al servlet05,
el cual calculara la suma y lo devolverá al JSP para que lo imprima.
Servlet :Servlet05.java
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
Son tres :
De declaracion
De expression
scriplets
<%!
Date fecha = new Date();
Date getFecha()
{
return fecha;
}
%>
<%!
int getCuadrado(int n)
{
return n*n;
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
JSP
Directivas JSP
La directriz JSP configuran la generación de código que ejecutara el contenedor al
crear un servlet. Son utilizadas para establecer valores globales tales como
declaraciones de clase, método a implementar, tipo de contenido de salida, etc., y
no producen ninguna salida para el cliente. Las directrices tienen alcance para el
total de la pagina JSP ; en otras palabras, una directriz afecta a toda la pagina JSP
pero solo a esa pagina.Las directrices comienzan con <%@ y finalizan con %> y
la sintaxis general es :
La directriz page
La directriz include
La directriz taglib
La directriz page
La directiva page nos permite definir uno o más de los siguientes atributos
sensibles a las mayúsculas.
Esto nos permite especificar
los paquetes que deberían ser
importados
Problema 06
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head> Un número cualquiera
<body>
<h3><b>FormateandoNumero</b></h3>
<% Indicando formato numérico
double n = 98756123.7579;
NumberFormat fNum =
NumberFormat.getNumberInstance(Locale.UK);
DecimalFormat formatoNum = (DecimalFormat) fNum;
formatoNum.applyPattern("###,###,###,###.00");
out.println(formatoNum.format(n));
%>
<h3>Formateando Fecha</h3>
<% formatoNum : objeto para
SimpleDateFormat formatoFecha = formatear numero n
new SimpleDateFormat("dd/MM/yyyy");
out.println(formatoFecha.format(new Date()));
%>
</body>
</html> Formateando la fecha actual
La directriz include
Esta directiva nos permite incluir una página externa en la página actual. La
directiva se parece a esto
Ejemplo : Tenemos dos paginas jsp,de las cuales, la pagina a incluir se llamara
reporte1.jsp que poseerácomo texto “La Universidad” y la pagina principal de
nombre index.jsp, simplemente invoca a la pagina mencionada y la incluye
dentro de de si misma.Para eso se tiene que utilizar la directiva include.
Implementando
la pagina
reporte1.jsp
Note en la figura de arriba la inclusión del jsp reporte1 dentro de la pagina index.jsp.
JavaBeans en JSP
Los JavaBeans representan las entidades y reglas del negocio. No hay que
verlas como un oscuro misterio de la tecnología J2EE, simplemente son clases
Java reutilizables que representan elementos del dominio.
<jsp:useBean>
La etiqueta <jsp:useBean> busca una instancia de un bean de la clase y el
ambito que se hayan determinando. Si existe un bean de la clase especificada,
se hace referencia a dicho bean con el id, en caso contrario, se crea una
instancia del mismo. El beanestara disponible dentro de su ambito.
En nuestro ejemplo:
Problema7 Hacer un JSP que trabaje con un javabean para almacenar datos en el
y poder también extraerlos
Fundamentos de JavaScript
Javascript es un lenguaje de programación empleado para programar pequeñas
funciones responsables de realizar acciones dentro del ámbito de una página web.
Javascript no tiene nada que ver con Java, son productos totalmente distintos y no guardan
entre si más relación que la sintaxis idéntica y poco más. Algunas diferencias entre estos dos
lenguajes son las siguientes:
Propósito. Java es mucho más potente que Javascript, esto es debido a que Java es un
lenguaje de propósito general, con el que se puede construir cualquier tipo de sistemas, sin
embargo, con Javascript sólo podemos escribir subrutinas para que se ejecuten en páginas
web.
</SCRIPT>
En una misma página podemos introducir varios scripts, cada uno que podría
introducirse dentro de unas etiquetas <SCRIPT> distintas.
var num1 = 23
var num2 = 33
var suma = num1 + num2
document.write(suma)<-- imprimiendo
JavaScript tiene la peculiaridad de ser un lenguaje débilmente tipeado, esto es, una variable
puede cambiar de tipo durante su vida, por ejemplo :
MiVariable=4;
MiVariable="Una_Cadena";
Existen variables locales y globales. Las globales deben ser declaradas asi :
<SCRIPT>
varnomVariable;
</SCRIPT>
Parametros de funciones
JSP
Variables globales en JSP
Esta etiqueta con el tipo indicado, trabaja como un botón común, entonces para este caso
debemos implementar el manejo de eventos (click), lo que se implementa tal como se ve :
<inputtype="button"value="Calcular la suma"onclick="calcular()">
Problema 08
Un JSP pide 2 números y los envía a un servlet. Aquí usaremos un <input type=”button” con la
función de evento click. Lo que implica el uso de una función javascript (callServlet)
<script>
functioncallServlet() Aquí la function maneja el llamado al servlet06
{
// formSuma es el nombre del formulario(ver mas abajo)
document.formSuma.action="<%=request.getContextPath()%>/Servlet06";
document.formSuma.method="get";
document.formSuma.submit();
} Notar que no existe action a pesar
</script> que se llama a un servlet
</head>
<body>
<form name="formSuma"> <%--- nombre del formulario ---%>
numero 1 : <input type="text" name="num1"><br>
numero 2 : <input type="text" name="num2"><br>
<input type="button" value="Calcular la suma"
onclick="callServlet()"><br>
<textarea rows= 10 cols=30 name="area">
<%
if(request.getAttribute("suma")!= null)
{
String resultado =
(String)request.getAttribute("suma");
out.print("\n"+resultado);
}
%>
</textarea>
</form>
</body>
</html>
javascript y la funcionalert(mensaje)
Se usa para emitir un mensaje sobre una pequeña
ventana (útil para mensajes de error)
Ejemplo :alert("falta el sueldo");
(Formulario JSP)
nom = document.planilla.nombre.value;
if(nom.length == 0)
alert("falta nombre");
Problema 09
Desarollar un JSP para ingresar un nombre con su apellido, entonces llamar a un servlet para
que reciba la cadena, extraiga solo el nombre y lo devuelva al JSP.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pagina prog05</title>
<script>
functionfocusValidar()
{
varnum;
nom = document.planilla.nombre.value;
if(nom.length == 0)
{
alert("falta nombre");
document.planilla.nombre.focus();
return;
}else
{
document.planilla.action=
"<%=request.getContextPath()%>/Servlet06";
document.planilla.method="get";
document.planilla.submit();
}
}
</script>
</head>
<body>
<form name="planilla">
nombre : <input type="text" name="nombre"><br>
<input type="button" value ="generarPlanilla"
onclick="focusValidar()">
<br>
<textarea name="area" rows="20" cols="40">
<%
if(request.getAttribute("registro")!= null)
{
out.print((String)request.getAttribute("registro"));
}
%>
</textarea>
</form>
</body>
</html>
Problema 10
Solución :
<html>
<head>
<title>JSP Page</title>
<script languaje="javascript">
function sumar(n1, n2)
{
var sum = parseInt(n1.value) + parseInt(n2.value)
alert("La suma es : " + sum)
}
</script>
</head>
<body>
<form name=formu>
Numero 1 : <input type="text" name ="txtN1"><br>
Numero 2 : <input type="text" name ="txtN2"><br><br>
Problema 11
Hacer un JSP para pedir al usuario elija una ciudad (usar un select (combo)) y se muestre la
selección con un Alert. Las ciudades son : Lima, Trujillo y Arequipa.
<html>
<head>
<title>JSP Page</title>
<script languaje="javascript">
function mostrar(ciudad)
{
switch(ciudad)
{
case "L" : alert("La ciudad es Lima"); break
case "T" : alert("La ciudad es Trujillo"); break
case "A" : alert("La ciudad es Arequipa"); break
}
}
</script>
</head>
<body>
</html>
Problema 12
Hacer un JSP para que al momento de cargarse la página Inicio.jsp, se llene un select
(combo) con áreas de trabajo, leídas de la tabla área ubicada en una base de datos,
mostrándose lo siguiente :
Entonces el usuario debe seleccionar una área de trabajo del select y luego de hacer click en el
botón Mostrar datos, se mostrara la data de los empleados (tabla empleado) que laboran en
esa área, pero en la página Listado.jsp.
<%@page import="DAO.areaDAO"%>
<%@page import="javaBeans.areaBean"%> Inicio.jsp
<%@page import="java.util.ArrayList"%>
<%!
areaBean empBean = null;
ArrayList lista = null;
areaDAO areDAO = new areaDAO();
%>
ListadoServlet
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body background="Imagenes\playas.jpg">
<form name="form1" method="get" action="<%=request.getContextPath()%>/ListadoServlet">
<center>
<br>
<table width="45%" border="0">
<tr align="center"> Tag marquee
<td >
<h1> Efecto : mensaje circular
<b>
<font color="red" face = "arial">
<marquee>
Software System S. A.
</marquee>
</font>
</b>
</h1>
</td>
</tr>
</table>
<table>
<tr>
<td>
<b><font color="blue" face="arial">Area : </font></b>
</td>
<td>
<select name="datos">
<%
lista = areDAO.getAreas();
int i;
for(i=0; i <lista.size(); i++)
{
empBean=(areaBean)lista.get(i);
%>
<option value= "<%=empBean.getNumarea()%>">
<%=empBean.getNomarea()%>
</option>
<%
}
%>
</select>
</td>
</tr>
</table>
<br>
<table>
<tr>
<td><input type="submit" value="Mostrar Datos"></td>
</tr>
</table>
</center>
</form>
</body>
</html>
import Utilitarios.ConexionBD;
import java.sql.*; areaDAO
import java.util.ArrayList;
import javaBeans.areaBean;
lista = emple.getEmpleadosXarea(area);
request.setAttribute("empleadosXarea",lista);
getServletContext().getRequestDispatcher("/Listado.jsp").forward(request, response);
}
<html>
<head>
<link href="<%=request.getContextPath()%>/css/screen.css"
rel="stylesheet" type="text/css">
<title>JSP Page</title>
</head>
<body background="Imagenes\playa.jpg">
<form name="formulario" action="">
<center>
<table width="75%" border="0">
<tr align="center">
<td >
<h2><b><font color="white">
Listado de Empleados</font></b>
</h2>
</td>
</tr>
</table>
<%-- Este atributo muestra la tabla en forma transparente -->
<%-- style="z-index:1;filter:alpha(opacity=60);-moz-
opacity:.60;opacity:.60" --%>
<table width="35%" border="1" >
<tr bgColor="orange">
<td>Codigo</td>
<td>Nombre</td>
<td>Apellido</td>
<td>Area</td>
</tr>
<%
lista = (ArrayList)request.getAttribute("empleadosXarea");
%>
<%
for(int i=0; i<lista.size(); i++)
{
objEmpleBean=(empleadoBean)lista.get(i);
%>
<tr
<%
if(i%2==0)
{
%>
class="fila_impar"
<%
}else
{
%>
class="fila_par"
<%
}
%>
>
<td><%=objEmpleBean.getCodigo()%></td>
<td><%=objEmpleBean.getNombre()%></td>
<td><%=objEmpleBean.getApellido()%></td>
<td><%=ar[Integer.parseInt(objEmpleBean.getArea())]%></td>
</tr>
<%
}
%>
</table>
<a href="Inicio.jsp">
<b><h2><font color="red">Volver</font></h2></b>
</a>
</center>
</form>
</body>
</html>
import Utilitarios.ConexionBD;
import java.sql.Connection; empleadoDAO
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import javaBeans.empleadoBean;
cn = objC.getConexion();
pt = cn.prepareStatement("select * from empleado where area =?");
pt.setString(1, codarea);
rs =pt.executeQuery();
lista=new ArrayList();
while(rs.next())
{
objUsuBean = new empleadoBean();
objUsuBean.setCodigo(rs.getString(1));
objUsuBean.setNombre(rs.getString(2));
objUsuBean.setApellido(rs.getString(3));
objUsuBean.setArea(rs.getString(4));
lista.add(objUsuBean);
}
pt.close();
rs.close();
cn.close();
} catch (Exception e)
{
}
return lista;
}
}
Problema 13 Uso del evento onchange para el select (mostrar sin usar botón)
<html>
<head>
<title>JSP Page</title>
<script languaje="javascript">
function mostrar(ciudad)
{
switch(ciudad)
{
case "L" : alert("La ciudad es Lima"); break
case "T" : alert("La ciudad es Trujillo"); break
case "A" : alert("La ciudad es Arequipa"); break
}
}
</script>
</head>
<body>
</html>
Problema 14
Modificar el problema anterior, tal que ya no se coloque el botón Mostrar datos. Se pide
programar el select, tal que apenas el usuario haya seleccionado una área en el select, se
muestre mas abajo una tabla con los datos de los empleados de esa área.
MANEJO DE SESIONES
El protocolo HTTP permite acceder a páginas web y enviar datos de un formulario pero tiene
una limitación que consiste en que no puede recordar datos o cliente cuando se cambia de
servidor o de página dentro de un mismo servidor. Por esta razón a este protocolo se le conoce
como protocolo sin estado.
Problema 12 Index.jsp
Llamando a servlet
<html>
<head>
<title>JSP Page</title>
</head>
<body>
<a href="/demoSession/ServCliente">Llamar a servlet</a>
</body>
</html>
ServCliente.java
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.Date;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
if(ctosAccesos == null)
ctosAccesos = new Integer(1);
else
ctosAccesos = newInteger(ctosAccesos.intValue() + 1);
session.setAttribute("ctosAccesos", ctosAccesos);
try
{
out.println("<html>");
out.println("<head>");
out.println("<title>demoSession</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>ID de sesión: " +session.getId() + "</p>");
out.println("<p>Creación: " +new Date(session.getCreationTime())+"</p>");
out.println("<p>Último acceso: " +
new Date(session.getLastAccessedTime()) +"</p>");
Integerctos = (Integer) session.getAttribute("ctosAccesos");
out.println("<p>Cantidad de accesos: " +ctos.intValue() + "</p>");
out.println("<p>Tiempo máximo de inactividad: " +
session.getMaxInactiveInterval() +" segundos" + "</p>");
out.println("</body>");
out.println("</html>");
} finally
{
out.close();
}
}
}