Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo:
Identificar los elementos necesarios para establecer una conexin con bases de datos haciendo
uso de JSP y el lenguaje de programacin JAVA
I. INTRODUCCION A JSP
JSP es una extensin del lenguaje de programacin Java utilizado para crear pginas web
dinmicas. Un pgina JSP necesita que un servidor web con capacidad para ejecutar Java Server
Pages sea instalado y configurado correctamente para recibir peticiones HTTP y procesarlas
utilizando lenguaje de programacin JAVA
Cuando se realizan peticiones HTTP de pginas en formato JSP, El servidor Web debe compilar y
ejecutar el cdigo Java y tratarlo en tiempo real con la informacin que se ha enviado desde el lado
del cliente, para finalmente retornar una pgina web de salida adaptada como respuesta. Un
servidor Web JSP tiene la capacidad de identificar a los diferentes clientes simultneos y procesar
de manera independiente las mltiples peticiones que han de realizar cada uno de estos de
manera individualizada.
Un JSP es un documento xHTML con cdigo Java incrustado o embebido, una pgina JSP es una
implementacin de la clase javax.servlet.Servlet, que describe como crear un objeto respuesta
(response) denominado HttpServletResponse a partir de un objeto peticin (request)
HttpServletRequest para finalmente transformar la pgina JSP a un Servlet. Entindase como
Servlet a programas escritos en lenguaje de programacin JAVA que se ejecutan en el contexto
de la web, es decir, basado en peticiones y respuestas HTTP cuyo cdigo se ejecuta del lado del
servidor.
Los servlets son objetos de JAVA cuyas funcionalidades se ejecutan dentro del contexto de un
servidor de aplicaciones tambin conocido como contenedor de servlets, como por ejemplo
Apache, Tomcat. Glassfish, etc). La palabra servlet deriva de otra anterior, applet, que se refera
a pequeos programas que se ejecutan en el contexto de un navegador web (Del lado del cliente).
La caracterstica fundamental que diferencia los diferencia de los applet, radica en que un servlet
es un programa que se ejecuta en el lado del servidor. El uso ms comn de los servlets es
generar pginas web de forma dinmica a partir de los parmetros de la peticin que enve los
usuarios desde su navegador web.
1. Variables implcitas Las pginas JSP incluyen ciertas variables privilegiadas sin necesidad de
declararlas ni configurarlas:
Variable Clase
pageContext javax.servlet.jsp.PageContext
request javax.servlet.http.HttpServletRequest
response javax.servlet.http.HttpServletResponse
session javax.servlet.http.HttpSession
config javax.servlet.ServletConfig
application javax.servlet.ServletContext
out javax.servlet.jsp.JspWriter
page java.lang.Object
exception java.lang.Exception
2. Directivas: Son etiquetas a partir de las cuales se genera informacin que puede ser utilizada
por el motor de JSP. No producen una salida visible al usuario sino que configura cmo se
ejecutar la pgina JSP.
Su sintaxis es:
<%@ directiva atributo="valor" %>
<%
response.sendRedirect("pagina.jsp");
%>
5. Variables de Sesin o Estados: Las sesiones en la Web permiten reconocer e identificar las
peticiones de cada uno de los usuarios que interactan con un sitio web y as llevar a cabo
acciones especficas, como mostrar informacin adaptada a l o guardar informacin de sus
gustos o pginas que ms visita. El uso de sesiones proporciona una forma fcil de guardar
datos del usuario de forma temporal para reutilizarlos en el momento que se necesiten. Las
sesiones son muy utilizadas para saber si un usuario a ingresado a travs de login (usuario +
contrasea) y en cualquier valor que requiera una variable temporal relacionada a la visita del
usuario.
session.setAttribute("Nombre_Variable",Valor);
session.invalidate();
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 6 de 27
Modelo: Es la representacin especfica de la informacin con la cual el sistema opera, por lo tanto
gestiona todos los accesos a dicha informacin, tanto ingresos, consultas y actualizaciones
Utilizando SGBD (motor de bases de datos) MySQL,cree una base de datos de nombre Directorio
y en ella cree una tabla con el nombre clientes con las siguientes distribucin de campos:
Paso 1. Cree un nuevo proyecto Web JAVA y colquele como nombre WEBJavaMVC, ubique la
carpeta en el disco duro donde quedan los archivos de este proyecto y dentro de esta cree tres
nuevas carpetas y llmelas Estilos, Imgenes y VistaCliente respectivamente. Dentro de la carpeta
Imgenes coloque tres imgenes en formato jpg con los nombres Fondo1.jpg,Fondo2.jpg y
Banner1.jpg. A modo de gua para el desarrollo de este ejercicio, el proyecto al finalizar debe
lucir similar a la imagen que se muestra a continuacin
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 8 de 27
Paso 2. Abra un editor de cdigo (Bloc De Notas, Netbeans, etc), copie el cdigo que se muestra a
continuacin y gurdelo dentro de la carpeta Estilos con el nombre estiloindex.css
#cabecera {width:100%;height:20%;background-color:#020;}
#contenido {width:85%;height:65%;float:left;}
#pie {width:100%;height:15%;}
Paso 3. Abra un editor de cdigo (Bloc De Notas, Netbeans, etc), copie el cdigo que se muestra a
continuacin y gurdelo dentro de la carpeta Estilos con el nombre estilo.css
/* General */
BODY {font-family: verdana,arial, sans-serif; font-size: 10pt;}
/* Contenido */
H1 {font-size: 16pt; font-weight: bold; color: #0066CC;}
H2 {font-size: 12pt; font-weight: bold; font-style: italic; color: black;}
H3 {font-size: 10pt; font-weight: bold; color: black;}
/* Formulario */
FORM.borde {border: 1px dotted #0066CC; padding: 0.5em 0.2em; width: 80%;}
FORM P {clear: left; margin: 0.2em; padding: 0.1em;}
/* Tablas */
TH {font-size: 10pt; font-weight: bold; color: white; background: #0066CC; text-align: left;}
TD {font-size: 10pt; background: #CCCCCC;}
Paso 4. En NetBeans agregue a la raz del proyecto un archivo html con el nombre entrada.html
,copie el cdigo que se muestra a continuacin y gurdelo
<html>
<head>
<title>Bienvenido</title>
</head>
<body>
<p> BIENVENIDO!</p>
<p> Seleccione una opcin del Men</p>
</body>
</html>
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 9 de 27
Paso 5. En NetBeans agregue a la raz del proyecto un archivo html con el nombre cabecera.html
, copie el cdigo que se muestra a continuacin y gurdelo
<html>
<head>
<title>Encabezado del Sitio WEb</title>
</head>
<body bgcolor="#3366ff">
<center>
<img src="Imagenes/Banner1.jpg" />
<h1> Bienvenido a Mi Sitio WEB!!!<h1>
</center>
</body>
</html>
*Nota: Ubique una imagen de su preferencia en la carpeta Imagenes para que la utilice en la
pgina de encabezado del Sitio WEB
Paso 6. En NetBeans agregue a la raz del proyecto un archivo html con el nombre pie.html
, copie el cdigo que se muestra a continuacin y gurdelo
<html>
<head>
<title>Pie Del Sitio WEB</title>
</head>
<body background="Imagenes/Fondo2.jpg">
<center>
UNIVERSIDAD DISTRITAL
<br />
Ingeniera Electrnica
<br />
Programacin Aplicada
<br />
2015
</center>
</body>
</html>
*Nota: Ubique una imagen de su preferencia en la carpeta Imagenes para que la utilice en la
pgina de pie del Sitio WEB
Paso 7. En NetBeans agregue a la raz del proyecto un archivo html con el nombre index.html
, copie el cdigo que se muestra a continuacin y gurdelo
<html>
<head>
<title>Mi Pagina Index</title>
<link href="Estilos/estiloindex.css" rel="stylesheet"
type="text/css" />
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 10 de 27
</head>
<body>
<div id="content">
<div id="cabecera">
<iframe width='100%' height='100%' name='cabecera' scrolling="No"
src='cabecera.html'></iframe>
</div>
<div id="menu" >
<iframe width='100%' height='100%' name='menu' scrolling="Yes"
src='menu.html'></iframe>
</div>
<div id="contenido">
<iframe width='100%' height='100%' name='principal' scrolling="Yes"
src='entrada.html'></iframe>
</div>
<div id="pie">
<iframe width='100%' height='100%' name='pie' scrolling="No"
src='pie.html'></iframe>
</div>
</div>
</body>
</html>
Paso 8. En NetBeans agregue a la raz del proyecto un archivo html con el nombre menu.html
, copie el cdigo que se muestra a continuacin y gurdelo
<html>
<head>
<title>Pagina Principal</title>
</head>
<body background="Imagenes/Fondo1.jpg">
<center>
<h1> Menu de Opciones</h1>
<a href="entrada.html" target="principal">Inicio</a><BR/>
<a href="VistaCliente/insertarcliente.jsp" target="principal">Insertar
Cliente</a><BR/>
<a href="VistaCliente/consultartodoscliente.jsp"
target="principal">Consultar Todos</a><BR/>
<a href="VistaCliente/consultarcliente.jsp" target="principal">Consultar
Cliente</a><BR/>
<a href="VistaCliente/modificareliminarcliente.jsp"
target="principal">Modificar/Eliminar</a><BR/>
</center>
</body>
</html>
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 11 de 27
*Nota: Ubique una imagen de su preferencia en la carpeta Imgenes para que la utilice de fondo
del men
a) Clase Conexin:
package Controlador;;
import java.sql.*;
try
{
Class.forName(driver);
Connection con = DriverManager.getConnection(connectString, user , password);
return con;
}
catch ( Exception e )
{
System.out.println(e.getMessage());
return null;
}
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 12 de 27
b) Clase Cliente:
package Controlador;
import java.sql.*;
stmt.setString(1,"" + this.identificacion);
stmt.setString(2,this.nombre);
stmt.setString(3,this.apellido);
stmt.setString(4,this.fijo);
stmt.setString(5,this.celular);
stmt.executeUpdate();
stmt.close();
con.close()
return true;
}
catch (Exception e )
{
System.out.println(e.getMessage());
return false;
}
}
try
{
cx = new Conexion();
con = cx.getConexion();
stmt.executeUpdate();
stmt.close();
con.close();
return true;
}
catch ( Exception e )
{
System.out.println(e.getMessage());
return false;
}
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 14 de 27
try
{
boolean consultaOK=false;
cx = new Conexion();
con = cx.getConexion();
Statement stmt = con.createStatement();
if(TipoConsulta.equals("Identificacion"))
{ SentenciaSQL+=" Where identificacion = " + Valor_a_buscar; }
else if (TipoConsulta.equals("Nombres"))
{ SentenciaSQL+=" Where Nombre = '" + Valor_a_buscar + "'"; }
else if (TipoConsulta.equals("Apellidos"))
{SentenciaSQL+=" Where Apellido = '" + Valor_a_buscar + "'"; }
if (rs.next()==true) {
rs.first();
this.identificacion= Integer.parseInt(rs.getString("Identificacion"));
this.nombre=rs.getString("Nombre");
this.apellido=rs.getString("Apellido");
this.fijo= rs.getString("Fijo");
this.celular=rs.getString("Celular");
consultaOK= true;
}
else
{
consultaOK=false;
}
stmt.close();
con.close();
return consultaOK;
catch ( Exception e )
{
System.out.println(e.getMessage());
return false;
}
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 15 de 27
TablaRespuesta+="<TABLE Border='1'>";
TablaRespuesta+="<TR>";
TablaRespuesta+="<TH>Identificacin</TH>";
TablaRespuesta+="<TH>Nombres</TH>";
TablaRespuesta+="<TH>Apellidos</TH>";
TablaRespuesta+="<TH>Telefono</TH>";
TablaRespuesta+="<TH>Celular</TH>";
TablaRespuesta+="</TR>";
while (rs.next())
{
TablaRespuesta+="<TR>";
TablaRespuesta+= ("<TD>" + rs.getString("identificacion") + "</TD>");
TablaRespuesta+= ("<TD>" + rs.getString("Nombre") + "</TD>");
TablaRespuesta+= ("<TD>" + rs.getString("Apellido") + "</TD>");
TablaRespuesta+= ("<TD>" + rs.getString("Fijo") + "</TD>");
TablaRespuesta+= ("<TD>" + rs.getString("Celular") + "</TD>");
TablaRespuesta+="</TR>";
}
TablaRespuesta+=("</TABLE>\n");
stmt.close();
con.close();
return TablaRespuesta;
}
catch ( Exception e )
{
System.out.println(e.getMessage());
return TablaRespuesta;
}
try
{
cx = new Conexion();
con = cx.getConexion();
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 16 de 27
stmt.executeUpdate();
stmt.close();
con.close();
return true;
}
catch (Exception e)
{
System.out.println(e.getMessage());
return false;
}
}
}
Paso 10. En NetBeans dentro de la carpeta VistaCliente agregue un nuevo archivo jsp con el
nombre insertarcliente.jsp, copie el cdigo que se muestra a continuacin y gurdelo
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE>Nuevo Cliente</TITLE>
<LINK HREF="../Estilos/estilo.css" REL="stylesheet"
TYPE="text/css">
</HEAD>
<BODY>
<H1>Insertar Nuevo Cliente</H1>
<table>
<tr>
<td>Identificacion: </td>
<td><INPUT TYPE='TEXT' NAME='identificacion' SIZE='30'
MAXLENGTH='50'> *</td>
</tr>
<tr>
<td>Nombres:</td>
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 17 de 27
<%
if(request.getParameter("insertar") != null)
{
try
{
// Obtener valores introducidos en el formulario
int
identificacion=Integer.parseInt(request.getParameter("identificacion"));
String nombres=request.getParameter("nombres");
String apellidos=request.getParameter("apellidos");
String telefono=request.getParameter("telefono");
String celular=request.getParameter("celular");
ObjCliente.setIdentificacion(identificacion);
ObjCliente.setNombre(nombres);
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 18 de 27
ObjCliente.setApellido(apellidos);
ObjCliente.setFijo(telefono);
ObjCliente.setCelular(celular);
if (GuardarOK)
{
out.write ("<script type='text/javascript'> alert('El
cliente ha sido creado correctamente')</script>");
}
catch(Exception ex)
{
out.write("Se ha presentado un error. Los Datos de este
cliente No se han guardado " + ex.getMessage());
}
}
%>
</FORM>
</BODY>
</HTML>
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 19 de 27
Paso 11. En NetBeans dentro de la carpeta VistaCliente agregue un nuevo archivo jsp con el
nombre consultartodoscliente.jsp, copie el cdigo que se muestra a continuacin y gurdelo
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>Todos los Clientes</title>
<LINK HREF="../Estilos/estilo.css" REL="stylesheet"
TYPE="text/css">
</head>
<body>
<center>
<H1>LISTADO DE CLIENTES</H1>
<%
Cliente ObjCliente = new Cliente();
String TablaConsultada =
ObjCliente.ConsultarTodosClientesWeb();
out.write(TablaConsultada);
%>
</center>
</body>
</html>
Paso 12. En NetBeans dentro de la carpeta VistaCliente agregue un nuevo archivo jsp con el
nombre consultarcliente.jsp, copie el cdigo que se muestra a continuacin y gurdelo
<!DOCTYPE html>
<html>
<head>
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 20 de 27
<H1>Consultar Cliente</H1>
<%
if(request.getParameter("consultar") != null)
{
// Obtener valores introducidos en el formulario
String tipoconsulta=request.getParameter("tipoconsulta");
String valor_a_consultar =
request.getParameter("valor_a_consultar");
boolean ConsultaOK=
ObjCliente.ConsultarCliente(tipoconsulta,valor_a_consultar);
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 21 de 27
if (ConsultaOK)
{
out.write("<Table>");
out.write("<tr>");
out.write( "<td>Identificacion:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='identificacion'
VALUE='" + ObjCliente.getIdentificacion()+ "'
readonly></td> ");
out.write("</tr>");
out.write("<tr>");
out.write( "<td>Nombres:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='nombres'
VALUE='" + ObjCliente.getNombre()+ "' readonly></td>");
out.write("</tr>");
out.write("<tr>");
out.write( "<td>Apellidos:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='apellidos'
VALUE='" + ObjCliente.getApellido()+ "'
readonly></td>");
out.write("</tr>");
out.write("<tr>");
out.write("<td>Telefono:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='telefono'
VALUE='" + ObjCliente.getFijo()+ "' readonly></td>");
out.write("</tr>");
out.write("<tr>");
out.write( "<td>Celular:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='celular'
VALUE='" + ObjCliente.getCelular()+ "'
readonly></td>");
out.write("</tr>");
out.write("</table>");
out.write("</Br>");
}
else
{
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 22 de 27
catch ( Exception e )
{
out.write("Se ha presentado un Error. " +
e.getMessage());
}
}
%>
</FORM>
</body>
</html>
Paso 13. En NetBeans dentro de la carpeta VistaCliente agregue un nuevo archivo jsp con el
nombre modificareliminarcliente.jsp, copie el cdigo que se muestra a continuacin y gurdelo
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Consultar Cliente</title>
<LINK HREF="../Estilos/estilo.css" REL="stylesheet" TYPE="text/css">
</head>
<body>
<H1>Modificar/Eliminar Cliente</H1>
<OPTION SELECTED>Identificacion
<OPTION>Nombres
<OPTION>Apellidos
</SELECT></P>
<%
if(request.getParameter("consultar") != null)
{
// Obtener valores introducidos en el formulario
String tipoconsulta=request.getParameter("tipoconsulta");
String valor_a_consultar
=request.getParameter("valor_a_consultar");
// Mostrar resultados de la consulta
try
{
Cliente ObjCliente = new Cliente();
Boolean ConsultaOK=
ObjCliente.ConsultarCliente(tipoconsulta,valor_a_consultar);
if (ConsultaOK)
{
out.write("<Table>");
out.write("<tr>");
out.write( "<td>Identificacion:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='identificacion'
VALUE='" + ObjCliente.getIdentificacion()+ "'
readonly></td> ");
out.write("</tr>");
out.write("<tr>");
out.write( "<td>Nombres:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='nombres'
VALUE='" + ObjCliente.getNombre()+ "'></td>");
out.write("</tr>");
out.write("<tr>");
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 24 de 27
out.write( "<td>Apellidos:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='apellidos'
VALUE='" + ObjCliente.getApellido()+ "'></td>");
out.write("</tr>");
out.write("<tr>");
out.write("<td>Telefono:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='telefono'
VALUE='" + ObjCliente.getFijo()+ "'></td>");
out.write("</tr>");
out.write("<tr>");
out.write( "<td>Celular:</td>");
out.write("<td><INPUT TYPE='TEXT' NAME='celular'
VALUE='" + ObjCliente.getCelular()+ "'></td>");
out.write("</tr>");
out.write("</table>");
out.write("</Br>");
catch ( Exception e )
{
out.write("Se ha presentado un Error. " +
e.getMessage());
}
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 25 de 27
if(request.getParameter("modificar") != null)
{
try
{
// Obtener valores introducidos en el formulario
int identificacion=
Integer.parseInt(request.getParameter("identificacion"));
String nombres=request.getParameter("nombres");
String apellidos=request.getParameter("apellidos");
String telefono=request.getParameter("telefono");
String celular=request.getParameter("celular");
ObjCliente.setIdentificacion(identificacion);
ObjCliente.setNombre(nombres);
ObjCliente.setApellido(apellidos);
ObjCliente.setFijo(telefono);
ObjCliente.setCelular(celular);
if (ActualizarOK)
{
out.write ("<script type='text/javascript'> alert('El
cliente ha sido Actualizado correctamente
')</script>");
out.write("[<A HREF='modificareliminarcliente.jsp'>
Actualizar/Eliminar Otro Cliente</A> ]");
}
else
{
out.write("<script type='text/javascript'> alert('Se
presento un error y No se pudo Actualizar este cliente
')</script>");
}
catch(Exception ex)
{
out.write("Se ha presentado un error. Los Datos de este
cliente No se han Actualizado " + ex.getMessage());
}
}
if(request.getParameter("eliminar") != null)
{
try
{
int identificacion=
Integer.parseInt(request.getParameter("identificacion"));
if (EliminarOK)
{
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 27 de 27
catch(Exception ex)
{
out.write("Se ha presentado un error. Los Datos de este
cliente No se han Eliminado " + ex.getMessage());
}
}
%>
</form>
</body>
</html>
TALLER:
Cree una aplicacin Web JSP que satisfaga los siguientes requerimientos:
2. Permita calcular el rea y volumen de las figuras geomtricas: Cono, Esfera, Cubo y Cilindro.
La pgina debe mostrar la imagen de la figura geomtrica correspondiente
3. Debe tener la opcin de almacenar en una base de datos los clculos obtenidos en dos tablas,
una tabla para los clculos matemticos y otra para los clculos geomtricos. Cada vez que se
ingrese un nuevo registro se debe guardar la fecha y hora del clculo.
4. Debe permitir consultar y eliminar los registros que ya estn almacenados tanto en la tabla de
clculos matemticos como en la de clculos geomtricos.
5. Debe tener un link que lleve a las pginas en formato html correspondientes al Taller de la gua
N6.