Você está na página 1de 27

GUA N 8 - Programacin Aplicada

Ingeniera Electrnica Ing. Nstor Ral Suarez P.


Pgina 1 de 27

Tema: DESARROLLO WEB CON JAVA SERVER PAGES (JSP)

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.

Un Servlet solo funciona en el contexto de un Contenedor de Servlet, el cual es un programa


capaz de recibir peticiones de desde el lado del cliente y redireccionar estas peticiones a un objeto
de tipo Servlet para que este finalmente ejecute una determina funcionalidad (programada en
lenguaje JAVA)
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 2 de 27

II. ELEMENTOS BASICOS DE JSP


GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 3 de 27

III. GENERALIDADES DE JAVA SERVER PAGES (JSP)

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" %>

Las directivas ms importantes disponibles en JSP son:

include: Incluye el contenido de un fichero en la pgina mediante el atributo file.


o <%@ include file="cabecera.html" %>
taglib: Importa bibliotecas de etiquetas (Tag Libraries)
o <%@ taglib uri="/tags/struts-html" prefix="html" %>
page: Especifica atributos relacionados con la pgina a procesar. Los atributos son:
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 4 de 27

Atributo Sintaxis Utilizacin

Importa clases y paquetes Java para ser


import <%@ page import="class; class" %>
utilizadas dentro del fichero JSP.

Especifica si utiliza los datos


session <%@ page session="false" %> contenidos en sesin; por defecto
"true".

Especifica el tipo MIME del objeto


<%@ page contentType="class;
contentType "response"; por defecto "text/html;
class" %>
charset=ISO-8859-1".

Buffer utilizado por el objeto writer


buffer <%@ page buffer="12KB" %> "out"; puede tomar el valor de "none";
por defecto "8KB".

Especifca la ruta de la pgina de error


<%@ page que ser invocada en caso de producirse
errorPage
errorPage="/path_to_error_page" %> una excepcin durante la ejecucin de
este fichero JSP.

Determina si este fichero JSP es una


pgina que maneja excepciones.
nicamente a este tipo de pginas
isErrorPage <%@ page isErrorPage="true" %> pueden acceder a la variable impcita
"exception", que contiene la excepcin
que provoc la llamada a la pgina de
error.

3. Etiquetas Propias JSP: Son las etiquetas pertenecientes a la especificacin JSP.


Proporcionan una funcionalidad bsica. Un primer grupo de etiquetas proporciona
funcionalidad a nivel de la pgina de una manera muy simple:

<jsp:forward>, redirige la peticin request a otra pagina o URL

<jsp:forward page=pagina/url />


GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 5 de 27

<jsp:include>, incluye el texto de un archivo dentro de la pgina

<jsp:include page=pagina/url />

<jsp:plugin>, descarga un plugin de Java (una applet o un Bean).

4. Redireccionamiento De URLs: JSP por medio del objeto response y el mtodo


sendRedirect permite realizar redireccionamiento hacia cualquier pagina html o jsp que se
requiera. La sintaxis para su utilizacin es:

<%
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.

En JSP las variables de sesin se utilizan de la siguiente forma:

1. Crear una variable de sesin:

session.setAttribute("Nombre_Variable",Valor);

2. Leer una variable de sesin:

If (request.getParameter("Nombre_Variable ") != null)


{
String Valor_Recuperado = (String) request.getParameter("Nombre_Variable ");
}

3. Cerrar (Borrar) Variables de Sesin

session.invalidate();
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 6 de 27

IV. PATRON DE DISEO - MODELO VISTA CONTROLADOR


Un patrn de diseo describe un problema que ocurre frecuentemente en el campo de la
construccin de software y su respectiva solucin; puede ser empleado muchas veces, en
diferentes contextos, sin tener que duplicar el diseo. Se trata de un elemento de diseo que
puede ser reutilizado. Un patrn de diseo tiene tres elementos esenciales: El Nombre del Patrn,
El Problema y La Solucin. El patrn de diseo Modelo-Vista-Controlador (MVC) divide las
aplicaciones en tres niveles de abstraccin:

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

Vista: Es la encargada de mostrar la informacin al usuario de forma grfica. Presenta el 'modelo'


(informacin y lgica de negocio) en un formato adecuado para interactuar (interfaz de usuario)

Controlador: Es el intermediario entre la vista y el modelo. Responde a eventos (usualmente


acciones del usuario) e invoca peticiones al 'modelo' cuando se hace alguna solicitud sobre la
informacin (Por ejemplo alguna tarea CRUD sobre una base de datos).
Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo de control
generalmente es el siguiente:
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 7 de 27

V. DESARROLLO DE UN SITIO WEB JSP - MVC

I. MODELO (Desarrollar Base De Datos En El SGBD)

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:

Nombre campo Tipo de dato Tamao del Campo


Primary Key Id_Cliente Autonumerico (BigInt) Entero largo
Identificacion Nmero (BigInt) Entero largo
Nombre Texto (Varchar) 150
Apellido Texto (Varchar) 150
Fijo Texto (Varchar) 50
Celular Texto (Varchar) 50

II. VISTA - CONTROLADOR

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

body {margin:0; padding:0;text-align:center;background: #DBEBF6;}

#content {text-align:left; margin:auto; width:100%; height:100%;}

#cabecera {width:100%;height:20%;background-color:#020;}

#menu {width:15%; height:65%; float:left;}

#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

Paso 9. En NetBeans en Source Packages agregue un Nuevo paquete y llmelo Controlador.


Dentro de este paquete agregue dos nuevas clases de java (Java Class) y llmelas Cliente y
Conexin respectivamente. Agregue el cdigo que se muestra a continuacin dentro de la clase
correspondiente.

Nota Importante: Tenga en cuenta que debe agregar el Archivo mysql-connector-java-5.1.16.jar


en la seccin de librera del proyecto, este corresponde al driver de conexin en formato .jar entre
la Plataforma Java y el motor de bases de datos MySQL

a) Clase Conexin:

package Controlador;;

import java.sql.*;

public class Conexion {

public Connection getConexion(){

String driver = "com.mysql.jdbc.Driver";


String connectString = "jdbc:mysql://localhost:3306/Directorio";
String user = "usuario de MySql";
String password = "password de MySQL";

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.*;

public class Cliente {

static Connection con;


static Conexion cx;

private int identificacion;


private String nombre;
private String apellido;
private String fijo;
private String celular;

public int getIdentificacion() {


return identificacion;
}
public void setIdentificacion(int identificacion) {
this.identificacion = identificacion;
}

public String getNombre() {


return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellido() {


return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}

public String getFijo() {


return fijo;
}
public void setFijo(String fijo) {
this.fijo = fijo;
}

public String getCelular() {


return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 13 de 27

public boolean GuardarCliente(){


try
{
cx = new Conexion();
con = cx.getConexion();

PreparedStatement stmt = con.prepareStatement("INSERT INTO Clientes (identificacion,


Nombre,Apellido, Fijo, Celular) VALUES (?,?,?,?,?)");

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;
}
}

public boolean ActualizarCliente(){

try
{
cx = new Conexion();
con = cx.getConexion();

PreparedStatement stmt = con.prepareStatement("UPDATE Clientes SET Nombre = '" +


this.nombre + "', Apellido = '"+ this.apellido + "',Fijo='"+ this.fijo + "',Celular='"+ this.celular +
"' WHERE (identificacion = " + this.identificacion + ")");

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

public boolean ConsultarCliente(String TipoConsulta, String Valor_a_buscar){

try
{
boolean consultaOK=false;
cx = new Conexion();
con = cx.getConexion();
Statement stmt = con.createStatement();

String SentenciaSQL="select * from Clientes";

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 + "'"; }

ResultSet rs = stmt.executeQuery (SentenciaSQL);

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

public String ConsultarTodosClientesWeb(){

String TablaRespuesta ="";


try
{
cx = new Conexion();
con = cx.getConexion();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Clientes");

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;
}

public boolean EliminarCliente(int IdentificacionABuscar){

try
{

cx = new Conexion();
con = cx.getConexion();
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 16 de 27

PreparedStatement stmt = con.prepareStatement("DELETE FROM Clientes WHERE


(identificacion = " + IdentificacionABuscar + ")");

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

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ page import="java.util.*" %>


<%@ page import="Controlador.Cliente" %>

<!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>

<FORM ACTION="insertarcliente.jsp" NAME="insertar" METHOD="POST">

<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

<td><INPUT TYPE='TEXT' NAME='nombres' SIZE='30' MAXLENGTH='50'>


* </td>
</tr>
<tr>
<td>Apellidos:</td>
<td><INPUT TYPE="TEXT" NAME="apellidos" SIZE="30"
MAXLENGTH="50"> *</td>
</tr>
<tr>
<td>Telefono:</td>
<td><INPUT TYPE="TEXT" NAME="telefono" SIZE="30"
MAXLENGTH="15"> * </td>
</tr>
<tr>
<td>Celular:</td>
<td><INPUT TYPE="TEXT" NAME="celular" SIZE="30" MAXLENGTH="15">
* </td>
</tr>
</table

<P><INPUT TYPE="SUBMIT" NAME="insertar" VALUE="Insertar


cliente"></P>

<P>NOTA: Los datos marcados con (*) deben ser rellenados


obligatoriamente</P>

<%

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");

Cliente ObjCliente = new Cliente();

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);

boolean GuardarOK = ObjCliente.GuardarCliente();

if (GuardarOK)
{
out.write ("<script type='text/javascript'> alert('El
cliente ha sido creado correctamente')</script>");

out.write("<H2>Gestin de Clientes - El cliente ha sido


creado correctamente</H2>\n");
out.write("[ <A HREF='insertarcliente.jsp'>Insertar un
Nuevo Cliente</A> ]");
}
else
{
out.write ("<script type='text/javascript'> alert('Se
presento un error y No se pudo insertar este cliente
')</script>");

out.write("Se presento un error y No se pudo insertar


este cliente");
}

}
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

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ page import="java.util.*" %>


<%@ page import="Controlador.Cliente" %>

<!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

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ page import="java.util.*" %>


<%@ page import="Controlador.Cliente" %>

<!DOCTYPE html>
<html>
<head>
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 20 de 27

<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>Consultar Cliente</H1>

<FORM ACTION="consultarcliente.jsp" NAME="consulta" METHOD="POST">

<!-- Tipo de Consulta-->


<P>Consultar por:
<SELECT NAME="tipoconsulta">
<OPTION SELECTED>Identificacion
<OPTION>Nombres
<OPTION>Apellidos
</SELECT></P>

<!-- Parametro de busqueda -->


Valor a Consultar:
<INPUT TYPE='TEXT' NAME='valor_a_consultar' SIZE='30'
MAXLENGTH='30'>

<!-- Botn de envo -->


<P><INPUT TYPE="SUBMIT" NAME="consultar" VALUE="Consultar"></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);
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>");

out.write ("<script type='text/javascript'>


alert('Consulta Realizada Con Exito')</script>");

out.write("Consulta Realizada Con Exito");

}
else
{
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 22 de 27

out.write ("<script type='text/javascript'> alert('No


se ha encontrado ningun Cliente, Verifique e intente
nuevamente Exito')</script>");

out.write("No se ha encontrado ningun Cliente,


Verifique e intente nuevamente ");
}
}

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

</html><%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@ page import="java.util.*" %>


<%@ page import="Controlador.Cliente" %>

<!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>

<FORM ACTION="modificareliminarcliente.jsp" NAME="consulta"


METHOD="POST">

<!-- Tipo de Consulta-->


<P>Consultar por:
<SELECT NAME="tipoconsulta">
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 23 de 27

<OPTION SELECTED>Identificacion
<OPTION>Nombres
<OPTION>Apellidos
</SELECT></P>

<!-- Parametro de busqueda -->


Valor a Consultar:
<INPUT TYPE='TEXT' NAME='valor_a_consultar' SIZE='30'
MAXLENGTH='30'>

<!-- Botn de envo -->


<P><INPUT TYPE="SUBMIT" NAME="consultar" VALUE="Consultar"></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>");

out.write("<INPUT TYPE='SUBMIT' NAME='modificar'


VALUE='Modificar'>");
out.write("<INPUT TYPE='SUBMIT' NAME='eliminar'
VALUE='Eliminar'>");
}
else
{
out.write ("<script type='text/javascript'> alert('No
se ha encontrado ningun Cliente, Verifique e intente
nuevamente Exito')</script>");

out.write("No se ha encontrado ningun Cliente,


Verifique e intente nuevamente ");
}
}

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");

Cliente ObjCliente = new Cliente();

ObjCliente.setIdentificacion(identificacion);
ObjCliente.setNombre(nombres);
ObjCliente.setApellido(apellidos);
ObjCliente.setFijo(telefono);
ObjCliente.setCelular(celular);

boolean ActualizarOK = ObjCliente.ActualizarCliente();

if (ActualizarOK)
{
out.write ("<script type='text/javascript'> alert('El
cliente ha sido Actualizado correctamente
')</script>");

out.write("<H2>Gestin de Clientes - El cliente ha sido


Actualizado correctamente</H2>\n");

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>");

out.write("Se presento un error y No se pudo Actualizar


este cliente ");
}
GUA N 8 - Programacin Aplicada
Ingeniera Electrnica Ing. Nstor Ral Suarez P.
Pgina 26 de 27

}
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"));

Cliente ObjCliente = new Cliente();


boolean EliminarOK = ObjCliente.EliminarCliente(identificacion);

if (EliminarOK)
{

out.write("<script type='text/javascript'> alert('El


cliente ha sido Eliminado correctamente')</script>");

out.write("<H2>Gestin de Clientes - El cliente ha sido


Eliminado correctamente</H2>\n");
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 Eliminar este cliente
')</script>");

out.write("Se presento un error y No se pudo Eliminar


este cliente ");
}

}
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:

1. Solicite un nmero y se calcule simultneamente las operaciones Factorial - Seno - Coseno


Raz Cuadrada y genere la serie de Fibonacci.

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.

Você também pode gostar