Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Problema 03
Crear un servlet, tal que
muestre su localizacin en
el sistema :
Solucion
Esto se logra utilizando el objeto request y su mtodo getContextPath ()
Veamos el cdigo del servlet solicitado :
public class ServletContextPath extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try
{
out.println("<html>"); out.println("<head>");
out.println("<title> Servlet ServletContextPath </title>");
out.println("</head>");
out.println("<body>");
out.println("<h2> El ServletContextPath esta en : " +
request.getContextPath () + "</h2>");
out.println("</body>");
out.println("</html>");
} finally
{
out.close();
}
Problema 04
Crear un JSP que pida
un numero y muestre
la tabla de multiplicar
correspondiente :
<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");
int nTab = Integer.parseInt(snumTabla);
String linea="";
for(int i =1; i <=12; ++ i)
{
linea = linea + nTab + " x "+ i +" = "+ (nTab*i)
+"\n";
}
out.println("\n"+linea);
}
%>
</textarea>
</form>
</body>
</html>
Para que un JSP llame a otra aplicacin, por ejemplo un servlet, usamos :
<form method="post" action="http://localhost:14267/proyServlet1/Servlet05">
Objeto a
JSP de
getServletContext().getRequestDispatcher("/prog03.jsp").forward(request, response);
Problema 05
Construir un JSP para pedir dos nmeros, los cuales se enviaran al servlet05,
el cual calculara la suma y lo devolver al JSP para que lo imprima.
JSP :
<html>
prog03.jsp
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Programa principal : prog03.jsp</title>
</head>
<body>
<form method="post" action="<%=request.getContextPath()%>/Servlet05">
Numero 1 : <input type="text" name="num1"> <br>
Numero 2 : <input type="text" name="num2"> <br>
<input type="submit" value="Calcular la suma"> <br>
<textarea rows= 10 cols=30>
Servlet
<%
if(request.getAttribute("suma")!= null)
{
resultado = "\n" +
(String)request.getAttribute("suma")+"\r";
out.print(resultado);
}
%>
</textarea>
</form>
</body>
</html>
import
import
import
import
import
import
java.io.IOException;
java.io.PrintWriter;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;
Servlet :
Servlet05.java
Problema
Prog04.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form name="planilla" method ="get" action ="<%=request.getContextPath()%>/Servlet07">
nombre : <input type="text" name="nombre"><br>
sueldo : <input type="text" name="sueldo"><br>
sexo : <br>
<input type="radio" name="sexo" value="varon" checked>Masculino<br>
<input type="radio" name="sexo" value="mujer">Femenino<br>
especialidad : <br>
<select name="especialidad">
<option value="administrador">administrador</option>
<option value="contador" selected>contador</option>
<option value="ing.Sistemas">ing.Sistemas</option>
</select><br><br>
<input type="submit" value ="generar Planilla">
<br>
</form>
</body>
</html>
Servlet07
public class
{
extends HttpServlet
prog05.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form name="MiPlanilla">
<textarea name="area" rows="20" cols="40">
<%
if(request.getAttribute("planilla")!= null)
{
out.print((String)request.getAttribute("planilla"));
}
%>
</textarea>
</form>
</body>
</html>
JSP
Directivas JSP
La directriz JSP configuran la generacin de cdigo que ejecutara el contenedor al
crear un servlet. Son utilizadas para establecer valores globales tales como
declaraciones de clase, mtodo 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 :
<%@
nombreDirectiva
atributo=valor %>
atributo=valor
La directriz page
La directiva page nos permite definir uno o ms de los siguientes atributos
sensibles a las maysculas.
Esto nos permite especificar
los paquetes que deberan ser
importados
Problema 06
Crear un JSP para formatear el
nmero 98756123.7579 con comas
y 2 decimales de aproximacin.
Adems formatear la fecha actual
obtenida con el mtodo Date().
Utilizar las directivas page para
importar
las
libreras
Java
necesarias.
<%@page import="java.util.Locale"%>
<%@page import="java.text.NumberFormat"%>
<%@page import="java.text.DecimalFormat"%>
<%@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 nmero cualquiera
<body>
<h3><b>Formateando Numero</b></h3>
<%
double n = 98756123.7579;
Indicando formato numrico
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>
Formateando la fecha actual
</html>
La directriz include
Esta directiva nos permite incluir una pgina externa en la pgina actual. La
directiva se parece a esto
Ejemplo : Tenemos dos paginas jsp, de las cuales, la pagina a incluir se ll amara
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
JavaBeans en JSP
Los JavaBeans
representan las entidades y reglas del negocio. No hay que
verlas como un oscuro misterio de la tecnologa 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 bean estara disponible dentro de su ambito.
Id representa el
nombre del objeto
instanciado
Esto me
permite
definir su
Problema 7
Fundamentos de JavaScript
Javascript es un lenguaje de programacin empleado para programar pequeas
funciones responsables de realizar acciones dentro del mbito de una pgina web.
Javascript no tiene nada que ver con Java, son productos totalmente distintos y no guardan
entre si ms relacin que la sintaxis idntica y poco ms. Algunas diferencias entre estos dos
lenguajes son las siguientes:
Compilador. Para programar en Java necesitamos un Kit de desarrollo y un compilador. Sin
embargo, Javascript no es un lenguaje que necesite que sus programas se compilen, sino que
stos se interpretan por parte del navegador cuando ste lee la pgina.
Orientado a objetos. Java es un lenguaje de programacin orientado a objetos, en cambio
Javascript no es orientado a objetos, esto quiere decir que podremos programar sin necesidad
de crear clases.
Propsito. Java es mucho ms potente que Javascript, esto es debido a que Java es un
lenguaje de propsito general, con el que se puede construir cualquier tipo de sistemas, sin
embargo, con Javascript slo podemos escribir subrutinas para que se ejecuten en pginas
web.
ciudad = "Valencia"
mujer = true
var num1 = 23
var num2 = 33
var suma = num1 + num2
document.write(suma)
<-- imprimiendo
JavaScript tiene la peculiaridad de ser un lenguaje dbilmente 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>
var
</SCRIPT>
nomVariable;
Parametros de funciones
Su empleo es simple como se ve en el ejemplo :
function bienvenida(nombre, colorTexto)
{
document.write("<FONT color=" + colorTexto + ">)
document.write("<H1>Hola " + nombre + "</H1>")
document.write("</FONT>")
}
JSP
Variables globales en JSP
La variable simplemente se
coloca sobre el cdigo
HTML :
El tag
<input type="button"
Esta etiqueta con el tipo indicado, trabaja como un botn comn, entonces
para este caso debemos implementar el manejo de eventos (click), lo que se
implementa tal como se ve :
<input type="button" value="Calcular la suma" onclick=
"calcular()">
Etiqueta del
boton
Event
o
funcin del
evento
Problema 08
Un JSP pide 2 nmeros y los enva a un servlet. Aqu usaremos un <input
type=button con la funcin de evento click. Lo que implica el uso de una
funcin javascript (callServlet)
JSP :
prog04.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Programa principal: prog04.jsp</title>
<script>
document.formSuma.action=
"<%=request.getContextPath()%>/Servlet06";
document.formSuma.method="get";
document.formSuma.submit();
}
</script>
</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>
Servlet :
public class Servlet06 extends HttpServlet
{
Servlet06.java
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException
{
int n1 = Integer.parseInt(request.getParameter("num1"));
int n2 = Integer.parseInt(request.getParameter("num2"));
int r = n1+n2;
String linea = "La suma es "+ r;
request.setAttribute("suma", linea); // etiqueta, objeto
getServletContext().getRequestDispatcher("/prog04.jsp").forward(request,
response);
}
Nombre del
<input
type=text
Nombre
del
formulari
(Formulario
(<input
type=text> )
nom;
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>
function focusValidar()
{
var num;
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 ="generar Planilla"
onclick="focusValidar()">
<br>
<textarea name="area" rows="20" cols="40">
<%
if(request.getAttribute("registro")!= null)
{
}
%>
</textarea>
</form>
</body>
</html>
Problema 10
Realizar un JSP que me
permita Ingresar por teclado
dos nmeros enteros y
mostrar a travs de un Alert
el resultado de la suma de
esos nmeros.
Solucin
:
out.print((String)request.getAttribute("registro"));
Problema 11
Hacer un JSP para solicitar al usuario elija una
ciudad a partir de un select (combo) y se muestre la
seleccin con un Alert. Las ciudades son : Lima,
Habana, Mosc y Quito
MANEJO DE SESIONES
El protocolo HTTP permite acceder a pginas web y enviar datos de un
formulario pero tiene una limitacin que consiste en que no puede recordar
datos o cliente cuando se cambia de servidor o de pgina dentro de un
mismo servidor. Por esta razn a este protocolo se le conoce como protocolo
sin estado.
Qu es una sesin ?
Como se obtiene una
request.getSession();
sesin
HttpSession
miSesion
Problema 12
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
Llamando a
<a href="/demoSession/ServCliente">
Llamar a servlet
servlet
</a>
</body>
</html>
import
import
import
import
import
import
import
import
java.io.IOException;
java.io.PrintWriter;
java.util.Date;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;
javax.servlet.http.HttpSession;
ServCliente.j
ava
== null)
= new Integer(1);
=
Integer(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 sesin: " + session.getId() + "</p>");
out.println("<p>Creacin: " + new Date(session.getCreationTime())+"</p>");
out.println("<p>ltimo acceso: " +
new Date(session.getLastAccessedTime()) + "</p>");
Integer ctos = (Integer) session.getAttribute("ctosAccesos");
out.println("<p>Cantidad de accesos: " + ctos.intValue() + "</p>");
out.println("<p>Tiempo mximo de inactividad: " +
session.getMaxInactiveInterval() + " segundos" + "</p>");
out.println("</body>");
out.println("</html>");
} finally
{
out.close();
}
}
}