Para realizar los siguientes ejercicios he cargado los
siguientes archivos para los JSP:
- Para los ejercicios del 1 al 10:
- Para el resto de ejercicios
- screen.css (distinto del anterior)
- styles.scss
- shared (carpeta referenciada desde styles.scss)
- scripts.js
- jQuery 1.11.3
Bien, empecemos.
1. Realiza una página
JSP que permita imprimir por pantalla el navegador que está utilizando el
cliente, la dirección IP y nombre del servidor donde se ejecuta el script, el
servidor Web instalado así como la dirección IP del cliente. Ejemplo:
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Info Page</title>
</head>
<body>
       <p>
             <span>Navegador actual: <%= request.getHeader("user-agent") %></span><br>
             <span>IP del servidor: <%=
request.getRemoteAddr() %></span><br>
             <span>Nombre del servidor: <%=
request.getRemoteHost() %></span><br>
             <span>Servidor instalado: <%=
application.getServerInfo() %></span><br>
             <span>IP del cliente: <%=
request.getLocalAddr() %></span><br>
       </p>
</body>
</html>
2. Realiza una página
JSP que imprima por pantalla tu nombre entre comillas precedido de la palabra
en negrita Nombre:
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Mi nombre</title>
</head>
<body>
       <% out.println("<b>Nombre:</b>
'Inazio Claver'"); %>
</body>
</html>
3. Realiza una página
JSP para imprimir por pantalla los 100 primeros números pares comenzando con el
2. Al finalizar imprimir la suma de todos ellos.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Numeros pares</title>
</head>
<body>
       <%
             int numero = 2;
             int suma = 0;
             for (int i = 0; i < 100;
i++){
                    out.println(numero);
                    suma =
suma + numero;
                    numero =
numero + 2;
             }
             out.println("<p>Suma
total: " + suma + "</p>");
       %>
</body>
</html>
4. Realizar una
página JSP que imprima si un número entero enviado como argumento es capicúa.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Capicua</title>
</head>
<body>
       <% 
       if(request.getParameter("cifra") != null &&
request.getParameter("cifra") != ""){
             int cifra =
Integer.parseInt(request.getParameter("cifra"));
             int falta, numInverso,
resto;
             falta = cifra;
             numInverso = 0;
             resto = 0;
             while (falta != 0){
                    resto =
falta % 10;
                    numInverso
= numInverso * 10 + resto;
                    falta =
falta / 10;
             }
             if (numInverso ==
cifra)
                    out.println(cifra
+ "
es capicua");
             else
                    out.println(cifra
+ "
no es capicua");
             out.println("<br><a
href='Ej1.4.jsp'>Volver atrás</a>");
       }
       else{
       %>
       <div>
             <p>Cifra a enviar</p>
             <form action="" method="post">
                    <input type="text" name="cifra">
                    <input type="submit" name="enviar">
             </form>
       </div>
       <%} %>
</body>
</html>
5. Codifica una
página JSP que reciba una cadena y la visualice al revés.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Cadena reversa</title>
</head>
<body>
       <%
             if
(request.getParameter("cadena") != null && request.getParameter("cadena") != ""){
                    String
cadena = request.getParameter("cadena");
                    String
resultado = new StringBuilder(cadena).reverse().toString();
                    out.println("Cadena
previa: " + request.getParameter("cadena") + ". Cadena revertida:
" +
resultado);
             }
             else{
       %>
       <form action="Ej1.5.jsp" method="post">
             <input type="text" name="cadena"/>
             <input type="submit" name="enviar"/>
       </form>
       <%} %>
</body>
</html>
6. Realiza una página
JSP que devuelva la letra que le corresponde a un DNI que se le envíe como
argumento. La letra del DNI se obtiene:
- Calculando el resto de dividir el DNI por 23.
- Con el resto mirar la entrada correspondiente de esta tabla:
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/screen.css"/>
<title>DNI</title>
</head>
<body>
       <%
             if (request.getParameter("dni") != null &&
request.getParameter("dni") != ""){
                    String[]
letras = {"T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"};
                    int n =
Integer.parseInt(request.getParameter("dni"));
                    String r = letras[n%23];
                    out.println("<p><span
class='titulo'>Numero DNI: </span>" + n + "<br><span
class='titulo'>Letra DNI: </span>" + r);
                    out.println("<br/><br/><a
href='Ej1.6.jsp'>Volver a calcular letra</a></p>");
             }
             else{
       %>
       <h1>Generador letra DNI</h1>
       <form action="Ej1.6.jsp" method="post">
             <label>Dni (Sin letra): </label><input type="text" name="dni">
             <input type="submit" name="enviar">
       </form>
       <%
             } 
       %>
</body>
</html>
7. Desarrollar una
página JSP que visualice el número de años completos que hay entre dos fechas
que se pasan como parámetros.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/screen.css"/>
<title>Años completos</title>
</head>
<body>
       <%
             if
(request.getParameter("agno1") != null && request.getParameter("agno1") != "" &&
request.getParameter("mes1") != null && request.getParameter("mes1") != "" &&
request.getParameter("dia1") != null && request.getParameter("dia1") != "" &&
request.getParameter("agno2") != null && request.getParameter("agno2") != "" &&
request.getParameter("mes2") != null && request.getParameter("mes2") != "" &&
request.getParameter("dia2") != null && request.getParameter("dia2") != ""){
                    java.util.Calendar
fecha1 = java.util.Calendar.getInstance();
                    java.util.Calendar
fecha2 = java.util.Calendar.getInstance();
                    int agno1 =
Integer.parseInt(request.getParameter("agno1"));
                    int agno2 =
Integer.parseInt(request.getParameter("agno2"));
                    int mes1 =
Integer.parseInt(request.getParameter("mes1"));
                    int mes2 =
Integer.parseInt(request.getParameter("mes2"));
                    int dia1 =
Integer.parseInt(request.getParameter("dia1"));
                    int dia2 =
Integer.parseInt(request.getParameter("dia2"));
                    fecha1.set(agno1,
mes1, dia1);
                    fecha2.set(agno2,
mes2, dia2);
                    long milis1 =
fecha1.getTimeInMillis();
                    long milis2 =
fecha2.getTimeInMillis();
                    long diferencia = 0;
                    if (milis1 >
milis2){
                           diferencia
= ((milis1 - milis2) / (24 * 60 * 60 * 1000)) / 365;    
                    }
                    else{
                           diferencia
= ((milis2 - milis1) / (24 * 60 * 60 * 1000)) / 365;
                    }
                    out.println("<p><span
class='titulo'>Años de diferencia: </span>" + diferencia);
                    out.println("<br/><br/><a
href='Ej1.7.jsp'>Volver a calcular</a></p>");
             }
             else{
       %>
       <form action="Ej1.7.jsp" method="post">
             <h1>Primera fecha</h1>
             <label>Día</label>
             <input type="text" name="dia1"/>
             <label>Mes</label>
             <input type="text" name="mes1"/>
             <label>Año</label>
             <input type="text" name="agno1"/>
             <h1>Segunda fecha</h1>
             <label>Día</label>
             <input type="text" name="dia2"/>
             <label>Mes</label>
             <input type="text" name="mes2"/>
             <label>Año</label>
             <input type="text" name="agno2"/>
             <p>
             <input type="submit" name="enviar" value="Calcular"/></p>
       </form>
       <%
             } // Cierro el else
       %>
</body>
</html>
8. Implementa una
página JSP que reciba un importe y visualice el desglose del cambio en unidades
monetarias de céntimos de €, 1€, 2€, 5€, 10€, 50€. Ej. 58.9 = 1 billete de 50€,
1 billete de 5 €, 3 monedas de 1€ y 90 céntimos de €.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/screen.css"/>
<title>Insert title here</title>
</head>
<body>
<% 
       if
(request.getParameter("pasta") != null && request.getParameter("pasta") != ""){
             double dinero =
Double.parseDouble(request.getParameter("pasta"));
             int e50 = 0, e20 = 0,
e10 = 0, e5 = 0, e2 = 0, e1 = 0;
             double cents = 0;
             if (dinero >= 50){
                    e50 = (int)dinero / 50;
                    dinero =
dinero % 50;
             }
             if (dinero >= 20){
                    e20 = (int)dinero / 20;
                    dinero =
dinero % 20;
             }
             if (dinero >= 10){
                    e10 = (int)dinero / 10;
                    dinero =
dinero % 10;
             }
             if (dinero >= 5){
                    e5 = (int)dinero / 5;
                    dinero =
dinero % 5;
             }
             if (dinero >= 2){
                    e2 = (int)dinero / 2;
                    dinero =
dinero % 2;
             }
             if (dinero >= 1){
                    e2 = (int)dinero / 1;
                    cents =
dinero % 1;
             }
             out.println("<span
class='titulo'>Monedas de 50: </span>" + e50 + "<br/>");
             out.println("<span
class='titulo'>Monedas de 50: </span>" + e20 + "<br/>");
             out.println("<span
class='titulo'>Monedas de 50: </span>" + e10 + "<br/>");
             out.println("<span
class='titulo'>Monedas de 50: </span>" + e5 + "<br/>");
             out.println("<span
class='titulo'>Monedas de 50: </span>" + e2 + "<br/>");
             out.println("<span
class='titulo'>Monedas de 50: </span>" + e1 + "<br/>");
             out.println("<span
class='titulo'>Monedas de 50: </span>" + cents + "<br/>");
             out.println("<br/><br/><a
href='Ej1.8.jsp'>Volver a calcular</a></p>");
       }
       else{
%>
<form action="Ej1.8.jsp" method="post">
       <label>Dinero a cambiar:</label>
       <input type="text" name="pasta"/>
       <input type="submit" name="enviar" value="Calcular"/>
</form>
<%
       }
%>
</body>
</html>
9. Realizar página
JSP que a partir de una cantidad en euros fija (en el ejemplo 337) muestre el
cambio con relación a las otras monedas. Utilizar un vector para almacenar el
tipo de moneda y su cambio.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Conversiones</title>
</head>
<body>
       <%
             if
(request.getParameter("euros") != null && request.getParameter("euros") != ""){
                    Double
euros = Double.parseDouble(request.getParameter("euros"));
                    Double[]
monedas = {1.4638, 1.6446, 1.4296, 161.45, 10.869, 35.868};
                    String []
monedasTexto = {"Dólar americano", "Dólar australiano", "Dólar
canadiense", "Yen japonés", "Yuan chino", "Rublo
ruso"};
                    out.println("<h1>Euros:
" +
euros + "</h1>");
                    out.println("<table>");
                    out.println("<tr>");
                    out.println("<th>Moneda</td>");
                    out.println("<th>Tasa
de cambio</td>");
                    out.println("<th>Resultado</td>");
                    out.println("</tr>");
                    for (int i = 0; i <
monedas.length; i++){
                           out.println("<tr>");
                           out.println("<td>" + monedasTexto[i] + "</td>");
                           out.println("<td>" + monedas[i] + "</td>");
                           out.println("<td>" + monedas[1] * euros
+ "</td>");
                           out.println("</tr>");
                    }
                    out.println("</table>");
             }
             else{
       %>
       <form action="Ej1.9.jsp" method="post">
             <label>Euros</label>
             <input type="text" name="euros"/>
             <input type="submit" name="enviar" value="Convertir"/>
       </form>
       <%
             }
       %>
</body>
</html>
10. Realizar página
JSP para visualizar las notas por asignatura y nota media de un alumno:
Almacenar previamente
las notas de cada asignatura en una matriz dentro de un fichero. 
La nota media debe
aparecer redondeada a un decimal.
<%@
page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;
charset=ISO-8859-1">
<title>Calificaciones</title>
</head>
<body>
       <%
             java.io.FileReader
fill = null;
             java.io.BufferedReader
bF = null;
             String linea;
             int contador = 0;
             double nota1 = 0.00;
             double nota2 = 0.00;
             java.text.NumberFormat
formato = new java.text.DecimalFormat("#0.0");
             try{
                    fill = new java.io.FileReader("C:\\Users\\Inazio\\workspace\\JSP\\notas.txt");
                    bF = new
java.io.BufferedReader(fill); // Creo buffer dependiente del fichero
                    linea =
bF.readLine(); // Cada linea cargará el buffer actual
                    out.println("<h1>Boletín
de notas</h1>");
                    out.println("<table>");
                    out.println("<tr>");
                    out.println("<th>Asignatura</td>");
                    out.println("<th>Cuatrimestre
1</td>");
                    out.println("<th>Cuatrimestre
2</td>");
                    out.println("<th>Media</td>");
                    out.println("</tr>");
                    while (linea != null){ // Cuando no pueda
cargar texto del buffer habrá acabado el fichero
                           if (contador == 0){
                                  out.println("<tr>");
                                  out.println("<td>" + linea + "</td>");
                                  contador++;
                           }
                           else if (contador == 1){
                                  out.println("<td>" + linea + "</td>");
                                  nota1
= Double.parseDouble(linea);
                                  contador++;
                           }
                           else if (contador == 2){
                                  nota2
= Double.parseDouble(linea);
                                  double media = (nota1 +
nota2) / 2; 
                                  out.println("<td>" + linea + "</td>");
                                  out.println("<td>" +
formato.format(media) +  "</td>");
                                  out.println("</tr>");
                                  contador
= 0;
                           }
                           linea
= bF.readLine();
                    }
                    out.println("</table>");
             }
             catch(java.io.FileNotFoundException
e){
                    e.printStackTrace();
              }
             catch(java.io.IOException
e){
                    e.printStackTrace();
             }
             finally{
                    try{
                           bF.close();
                           fill.close();
                    }
                    catch(java.io.IOException
e){
                           e.printStackTrace();
                    }
             }
       %>
</body>
</html>
11. Utilizando el
siguiente script crea la tabla clientes dentro de la base de datos test
DROP TABLE IF EXISTS
CLIENTES;
CREATE TABLE CLIENTES
(
COD_CLIENTE VARCHAR(10)
PRIMARY KEY,
NOMBRE VARCHAR(50),
DIRECCION VARCHAR(30),
POBLACION VARCHAR(20),
PROVINCIA VARCHAR(20),
PAIS VARCHAR(20),
TELEFONO VARCHAR(15),
CORREO VARCHAR(25),
CLAVE VARCHAR(50)
);
Realiza una página JSP de inserción de datos para la tabla
anterior teniendo en cuenta:
- El código del cliente no debe quedar vacío y su longitud no debe ser superior a 10
- El nombre del cliente no debe quedar vacío y su longitud no debe ser superior a 50
- La dirección del cliente no debe quedar vacía y su longitud no debe ser superior a 30
- La población del cliente no debe quedar vacía y su longitud no debe ser superior a 20
- La provincia del cliente no debe quedar vacía y su longitud no debe ser superior a 20
- El país del cliente no debe quedar vacío y su longitud no debe ser superior a 20
- El teléfono del cliente no debe quedar vacío, debe contener solamente caracteres numéricos y su longitud no debe ser superior a 15
- La dirección del correo electrónico debe incluir los caracteres @ y .
- Los campos contraseña deben ser obligatorios y además coincidir. Su longitud mínima debe ser de 6 caracteres
Archivo Acciones.java
package baseDatos;
import java.sql.*;
public class Acciones {
       // Propiedades
       Connection conn = null;
       PreparedStatement ps = null;
       String url = "jdbc:mysql://localhost:3306/test";
       String user = "root";
       String password = "root";
       String driver = "com.mysql.jdbc.Driver";
       // Métodos
       public void conectarBD(){
             // Cargra del
Driver
             try{
                    Class.forName(driver);
             }
             catch(ClassNotFoundException
e){
                    e.printStackTrace();
             }
             // Conexión a Base
de datos
             try{
                    conn = DriverManager.getConnection(url, user, password);
             }
             catch(SQLException e){
                    e.printStackTrace();
             }
       } // Fin conectarBD()
       public void desconectarBD(){
             if (conn != null){
                    try{
                           conn.close();
                    }
                    catch(SQLException e){
                           e.printStackTrace();
                    }
             }
       } // Fin
desconectarBD()
       public String
nuevoCliente(String codCliente, String nombre, String direccion, String poblacion, String provincia, String pais, String telefono, String correo, String clave){
             String resultado = "";
             try{
                    conectarBD();
                    conn.setAutoCommit(false);
                    ps = conn.prepareStatement("INSERT INTO
clientes VALUES ((?), (?), (?), (?), (?), (?), (?), (?), (?));");
                    ps.setString(1, codCliente);
                    ps.setString(2, nombre);
                    ps.setString(3, direccion);
                    ps.setString(4, poblacion);
                    ps.setString(5, provincia);
                    ps.setString(6, pais);
                    ps.setString(7, telefono);
                    ps.setString(8, correo);
                    ps.setString(9, clave);
                    ps.executeUpdate();
                    conn.commit();
                    conn.setAutoCommit(true);
             }
             catch(SQLException e){
                    try{
                           conn.rollback();
                           resultado = e.getMessage();
                    }
                    catch(SQLException ex){
                           ex.printStackTrace();
                           resultado = ex.getMessage();
                    }
             }
             finally{
                    if (ps != null){
                           try{
                                  ps.close();
                                  resultado = "Inserción
correcta";
                           }
                           catch(SQLException e){
                                  e.printStackTrace();
                                  resultado = e.getMessage();
                           }
                    }
                    desconectarBD();
             }
             return resultado;
       } // Fin
nuevoCliente()
}
Archivo 15a.jsp
<%@
page language="java"
contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html>
<html>
       <head>
             <meta charset="utf-8">
             <meta http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1">
             <title>Formulario</title>
             <link rel="stylesheet"
href="css/screen.css">
       </head>
       <body>
             <form class="sign-up"
action="15b.jsp" method="post">
                    <h1 class="sign-up-title">Altas de clientes</h1>
                    <input type="text"
class="sign-up-input" maxlength="10" name="cod_cliente"
placeholder="Código (máx 10 caract.)" required autofocus>
                    <input type="text"
class="sign-up-input" maxlength="50" name="nombre"
placeholder="Nombre completo" required>
                    <input type="text"
class="sign-up-input" maxlength="30" name="direccion"
placeholder="Dirección" required>
                    <input type="text"
class="sign-up-input" maxlength="20" name="poblacion"
placeholder="Población" required>
                    <input type="text"
class="sign-up-input" maxlength="20" name="provincia"
placeholder="Provincia" required>
                    <input type="text"
class="sign-up-input" maxlength="20" name="pais"
placeholder="País" required>
                    <input type="text"
class="sign-up-input" maxlength="15" name="telefono"
placeholder="Teléfono" required>
                    <input type="email"
class="sign-up-input" name="correo" placeholder="E-mail">
                    <input type="password"
class="sign-up-input" name="clave1" placeholder="Contraseña
(min. 6 caract.)">
                    <input type="password"
class="sign-up-input" name="clave2" placeholder="Repetir
contraseña">
                    <input type="submit"
value="Enviar" class="sign-up-button">
             </form>
       </body>
</html>
Archivo 15b.jsp
<%@
page language="java"
contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Formulario</title>
</head>
<body>
       <jsp:useBean id="datos"
scope="request" class="baseDatos.Acciones"/>
<% 
             datos.conectarBD();
             String
codCliente = request.getParameter("cod_cliente");
             String nombre =
request.getParameter("nombre");
             String direccion
= request.getParameter("direccion");
             String poblacion
= request.getParameter("poblacion");
             String provincia
= request.getParameter("provincia");
             String pais =
request.getParameter("pais");
             String telefono
= request.getParameter("telefono");
             String correo =
request.getParameter("correo");
             String clave1 =
request.getParameter("clave1");
             String clave2 =
request.getParameter("clave2");
             if
(clave1.equals(clave2)){
                    String r
= datos.nuevoCliente(codCliente, nombre, direccion, poblacion, provincia, pais,
telefono, correo, clave1);
                    response.sendRedirect("15a.jsp");
                    out.println("<script>alert(" + r + ")</script>");
             }
             else{
       %>
             <jsp:forward page="ejemplo15a.jsp">
             <jsp:param name="error"
value="Las contraseñas no coinciden.<br>Vuelve a teclearlas"/>
             </jsp:forward>
       <% 
             }
             datos.desconectarBD();
       %>
</body>
</html>
12. Realiza las
páginas JSP necesarias para gestionar la base de datos agenda (el siguiente
script sql la genera)
-- phpMyAdmin SQL
Dump
-- version 2.11.1
-- http://www.phpmyadmin.net
--
-- Servidor:
localhost
-- Tiempo de
generación: 12-12-2007 a las 22:33:41
-- Versión del
servidor: 5.0.45
-- Versión de PHP:
5.2.4
SET
SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
--
--
--------------------------------------------------------
--
-- Estructura de
tabla para la tabla `agenda`
--
DROP TABLE IF EXISTS
`agenda`;
CREATE TABLE IF NOT
EXISTS `agenda` (
  `registro` int(4) unsigned NOT NULL
auto_increment,
  `Apellidos` varchar(150) NOT NULL default '',
  `Nombre` varchar(60) default NULL,
  `Telefono_oficina` varchar(20) default NULL,
  `Telefono_movil` varchar(20) default NULL,
  `email` varchar(200) default NULL,
  `direccion` varchar(150) default NULL,
  `localidad` varchar(100) default NULL,
  `provincia` varchar(60) default NULL,
  `codigo_postal` varchar(5) default NULL,
  `telefono` varchar(20) default NULL,
  `notas` blob,
  PRIMARY KEY 
(`registro`),
  KEY `apellidos` (`Apellidos`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
--
-- Volcar la base de
datos para la tabla `agenda`
--
INSERT INTO `agenda`
(`registro`, `Apellidos`, `Nombre`, `Telefono_oficina`, `Telefono_movil`,
`email`, `direccion`, `localidad`, `provincia`, `codigo_postal`, `telefono`,
`notas`) VALUES
(9, 'García Pérez',
'Fernando', '91-8765432', '611-876142', 'jgarcia@mec.es', 'C/ Alicante, 25 - 4º
B', 'Madrid', 'Madrid', '255', '91-8765432',
0x416c756d6e6f2064656c20637572736f206465205048502e),
(10, 'Fernández de
Juana', 'María', '91-8044167', '291-226974', 'maria.fernandez@email.com', 'C/
Escultores, 23 3º J', 'Tres Cantos', 'Madrid', '255', '91-8034567',
0x536563726574617269612064656c206469726563746f72),
(11, 'Ortega Mora',
'Jaime', '921-444444', '196-555889', 'jortega@correo.net', 'C/ La rana, 11 7º
L', 'Aguilafuente', 'Segovia', '255', '921-444442',
0x566563696e6f2064656c20707565626c6f),
(12, 'Robledo
Sacristán', 'Clodoaldo', '91-4123836', '', '', '', '', '', '0', '', '');
--
--------------------------------------------------------
Ejemplos de ejecución
de las 3 opciones anteriores:
Archivo Agenda.java
package baseDatos;
public class Agenda {
       // Propiedades
       private String apellidos;
       private String nombre;
       private String telefono;
       private String direccion;
       private String localidad;
       private String provincia;
       // Constructor
       public Agenda(String apellidos, String nombre, String telefono, String direccion, String localidad, String provincia){
             this.apellidos = apellidos;
             this.nombre = nombre;
             this.telefono = telefono;
             this.direccion = direccion;
             this.localidad = localidad;
             this.provincia = provincia;
       }
       // Métodos
       public String
getApellidos() {
             return apellidos;
       }
       public String getNombre() {
             return nombre;
       }
       public String getTelefono()
{
             return telefono;
       }
       public String
getDireccion() {
             return direccion;
       }
       public String
getLocalidad() {
             return localidad;
       }
       public String
getProvincia() {
             return provincia;
       }
}
Archivo AccionesAgenda.java
package baseDatos;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collection;
public class AccionesAgenda {
       // Propiedades
       Connection conn = null;
       PreparedStatement ps = null;
       ResultSet rs = null;
       String url = "jdbc:mysql://localhost:3306/test";
       String user = "root";
       String password = "";
       String driver = "com.mysql.jdbc.Driver";
       // Métodos
       public void conectarBD(){
             // Cargra del
Driver
             try{
                    Class.forName(driver);
             }
             catch(ClassNotFoundException
e){
                    e.printStackTrace();
             }
             // Conexión a Base
de datos
             try{
                    conn = DriverManager.getConnection(url, user, password);
             }
             catch(SQLException e){
                    e.printStackTrace();
             }
       } // Fin conectarBD()
       public void desconectarBD(){
             if (conn != null){
                    try{
                           conn.close();
                    }
                    catch(SQLException e){
                           e.printStackTrace();
                    }
             }
       } // Fin desconectarBD()
       public String
nuevoContacto(String nombre, String apellidos, String direccion, String localidad, String provincia, String telefono){
             String resultado = "";
             try{
                    conn.setAutoCommit(false);
                    ps = conn.prepareStatement("INSERT INTO
agenda (Apellidos, Nombre, Telefono_oficina, direccion, localidad, provincia)
VALUES((?), (?), (?), (?), (?), (?));");
                    ps.setString(1, apellidos);
                    ps.setString(2, nombre);
                    ps.setString(3, telefono);
                    ps.setString(4, direccion);
                    ps.setString(5, localidad);
                    ps.setString(6, provincia);
                    ps.executeUpdate();
                    conn.commit();
                    conn.setAutoCommit(true);
             }
             catch(SQLException e){
                    try{
                           conn.rollback();
                           resultado = e.getMessage();
                    }
                    catch(SQLException ex){
                           ex.printStackTrace();
                           e.getMessage();
                    }
             }
             finally{
                    if (ps != null){
                           try{
                                  ps.close();
                                  resultado = "Inserción
correcta";
                           }
                           catch(SQLException e){
                                  e.printStackTrace();
                                  resultado = e.getMessage();
                           }
                    }
             }
             return resultado;
       } // Fin
nuevoContacto
       public Collection
buscarAgenda(String nombre, String apellidos, String direccion, String localidad, String provincia, String telefono){
             ArrayList<Agenda>
contactos = new
ArrayList<Agenda>();
             try{
                    ps = conn.prepareStatement("SELECT
Apellidos, Nombre, Telefono_oficina, direccion, localidad, provincia FROM
agenda WHERE Apellidos LIKE (?) AND Nombre LIKE (?) AND Telefono_oficina LIKE
(?) AND direccion LIKE (?) AND localidad LIKE (?) AND provincia LIKE (?);");
                    ps.setString(1, apellidos);
                    ps.setString(2, nombre);
                    ps.setString(3, telefono);
                    ps.setString(4, direccion);
                    ps.setString(5, localidad);
                    ps.setString(6, provincia);
                    rs = ps.executeQuery();
                    while (rs.next()){
                           Agenda
agenda = new Agenda(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6));
                           contactos.add(agenda);
                    }
             }
             catch(SQLException e){
                    return null;
             } 
             finally{
                    if (rs != null){
                           try{
                                  rs.close();
                           }
                           catch(SQLException e){
                                  e.printStackTrace();
                           }
                    }
                    if (ps != null){
                           try{
                                  ps.close();
                           }
                           catch(SQLException e){
                                  e.printStackTrace();
                           }
                    }
             }
             return contactos;
       }// Fin buscarAgenda
}
Archivo 17a.jsp
<%@
page language="java"
contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html>
<html>
       <head>
             <meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
             <link type="text/css"
rel="stylesheet" href="css/screen.css">
        <script type="text/javascript"
src="js/jquery-1.11.3.js"></script>
        <script type="text/javascript"
src="js/scritps.js"></script>
             <title>Usuarios</title>
       </head>
       <body>
             <header>
                    <h1>Usuarios</h1>
            <div>
                     <input type="submit"
class="boton" id="nuevo"
value="Nuevo"/>
                     <input type="submit"
class="boton" id="buscar"
value="Buscar"/>
                     <input type="submit"
class="boton" id="mostrar"
value="Mostrar todos"/>
            </div>
             </header>
        <div id="contenido"
class="contenido">
        </div>
       </body>
</html>
Archivo 17b.jsp
<!DOCTYPE
html>
<html>
       <head>
             <meta charset="utf-8">
             <meta http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1">
             <title>Usuarios</title>
             <link rel="stylesheet"
href="css/screen.css">
       </head>
       <body>
             <form class="sign-up"
action="17bResultados.jsp" method="post">
                    <h1 class="sign-up-title">Nuevo contacto</h1>
                    <input type="text"
class="sign-up-input" maxlength="60" name="nombre"
placeholder="Nombre" required
autofocus>
                    <input type="text"
class="sign-up-input" maxlength="150" name="apellidos"
placeholder="Apellidos" required>
                    <input type="text"
class="sign-up-input" maxlength="150" name="direccion"
placeholder="Dirección">
                    <input type="text"
class="sign-up-input" maxlength="100" name="localidad"
placeholder="Localidad">
                    <input type="text"
class="sign-up-input" maxlength="60" name="provincia"
placeholder="Provincia">
                    <input type="text"
class="sign-up-input" maxlength="20" name="telefono"
placeholder="Teléfono">
                    <input type="submit"
value="Agregar" class="sign-up-button">
             </form>
       </body>
</html>
Archivo 17bResultados.jsp
<%@
page language="java"
contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
       <head>
             <meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
             <title>Agenda</title>
       </head>
       <body>
             <jsp:useBean id="accionesAgenda"
scope="session" class="baseDatos.AccionesAgenda"/>
             <%
                    String
nombre;
                    String
apellidos;
                    String
direccion;
                    String
localidad;
                    String
provincia;
                    String
telefono;
                    accionesAgenda.conectarBD();
                    if
(request.getParameter("nombre") != "")
                           nombre
= request.getParameter("nombre");
                    else
                           nombre
= null;
                    if
(request.getParameter("apellidos") != "")
                           apellidos
= request.getParameter("apellidos");
                    else
                           apellidos
= null;
                    if
(request.getParameter("direccion") != "")
                           direccion
= request.getParameter("direccion");
                    else
                           direccion
= null;
                    if
(request.getParameter("localidad") != "")
                           localidad
= request.getParameter("localidad");
                    else
                           localidad
= null;
                    if
(request.getParameter("provincia") != "")
                           provincia
= request.getParameter("provincia");
                    else
                           provincia
= null;
                    if
(request.getParameter("telefono") != "")
                           telefono
= request.getParameter("telefono");
                    else
                           telefono
= null;
                    String r
= accionesAgenda.nuevoContacto(nombre, apellidos, direccion, localidad,
provincia, telefono);
                    response.sendRedirect("17a.jsp");
             %>
       </body>
</html>
Archivo 17c.jsp
<!DOCTYPE
html>
<html>
       <head>
             <meta charset="utf-8">
             <meta http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1">
             <title>Usuarios</title>
             <link rel="stylesheet"
href="css/screen.css">
       </head>
       <body>
             <form class="sign-up"
action="17ResultSet.jsp" method="post">
                    <h1 class="sign-up-title">Buscar</h1>
                    <input type="text"
class="sign-up-input" maxlength="60" name="nombre"
placeholder="Nombre" autofocus>
                    <input type="text"
class="sign-up-input" maxlength="150" name="apellidos"
placeholder="Apellidos">
                    <input type="text"
class="sign-up-input" maxlength="150" name="direccion"
placeholder="Dirección">
                    <input type="text"
class="sign-up-input" maxlength="100" name="localidad"
placeholder="Localidad">
                    <input type="text"
class="sign-up-input" maxlength="60" name="provincia"
placeholder="Provincia">
                    <input type="text"
class="sign-up-input" maxlength="20" name="telefono"
placeholder="Teléfono">
                    <input type="submit"
value="Buscar" class="sign-up-button">
             </form>
       </body>
</html>
Archivo 17d.jsp
<%@
page language="java"
contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"
import="java.util.*, baseDatos.*"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
       <head>
             <meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
             <title>Contactos</title>
       </head>
       <body>
             <jsp:useBean id="accionesAgenda"
scope="session" class="baseDatos.AccionesAgenda"/>
             <jsp:useBean id="agenda"
scope="session" class="baseDatos.Agenda"/>
             <%
                    String
nombre = "%";
                    String
apellidos = "%";
                    String
direccion = "%";
                    String
localidad = "%";
                    String
provincia = "%";
                    String
telefono = "%";
                    accionesAgenda.conectarBD();
                    Collection
contactos = accionesAgenda.buscarAgenda(nombre, apellidos, direccion,
localidad, provincia, telefono);
                    if (contactos != null &&
contactos.size() > 0){
                           out.println("<table>");
                           out.println("<tr>");
                           out.println("<th>Apellidos</th>");
                           out.println("<th>Nombre</th>");
                           out.println("<th>Telefono</th>");
                           out.println("<th>Direccion</th>");
                           out.println("<th>Localidad</th>");
                           out.println("<th>Provincia</th>");
                           out.println("</tr>");
                           for (Iterator iter =
contactos.iterator(); iter.hasNext();){
                                  Agenda
a = (Agenda)iter.next();
                                  out.println("<tr>");
                                  out.println("<td>" + a.getApellidos() +
"</td>");
                                  out.println("<td>" + a.getNombre() + "</td>");
                                  out.println("<td>" + a.getTelefono() + "</td>");
                                  out.println("<td>" + a.getDireccion() +
"</td>");
                                  out.println("<td>" + a.getLocalidad() +
"</td>");
                                  out.println("<td>" + a.getProvincia() +
"</td>");
                                  out.println("</tr>");
                           }
                           out.println("</table");
                    }            
                    accionesAgenda.desconectarBD();
             %>
             <a href="17a.jsp"><input type="submit" value="Volver a
menú" class="volver"></a>
       </body>
</html>
Archivo 17ResultSet.jsp
<%@
page language="java"
contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"
import="java.util.*, baseDatos.*"%>
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
       <head>
             <meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
             <title>Agenda</title>
             <link type="text/css"
rel="stylesheet" href="css/screen.css">
       </head>
       <body>
             <jsp:useBean id="accionesAgenda"
scope="session" class="baseDatos.AccionesAgenda"/>
             <%
                    String
nombre;
                    String
apellidos;
                    String
direccion;
                    String
localidad;
                    String
provincia;
                    String
telefono;
                    if
(request.getParameter("nombre") != "")
                           nombre
= request.getParameter("nombre");
                    else
                           nombre = "%";
                    if
(request.getParameter("apellidos") != "")
                           apellidos
= request.getParameter("apellidos");
                    else
                           apellidos
= "%";
                    if
(request.getParameter("direccion") != "")
                           direccion
= request.getParameter("direccion");
                    else
                           direccion
= "%";
                    if
(request.getParameter("localidad") != "")
                           localidad
= request.getParameter("localidad");
                    else
                           localidad
= "%";
                    if
(request.getParameter("provincia") != "")
                           provincia
= request.getParameter("provincia");
                    else
                           provincia
= "%";
                    if
(request.getParameter("telefono") != "")
                           telefono
= request.getParameter("telefono");
                    else
                           telefono
= "%";
                    accionesAgenda.conectarBD();
                    Collection
contactos = accionesAgenda.buscarAgenda(nombre, apellidos, direccion,
localidad, provincia, telefono);
                    if (contactos != null &&
contactos.size() > 0){
                           out.println("<table>");
                           out.println("<tr>");
                           out.println("<th>Apellidos</th>");
                           out.println("<th>Nombre</th>");
                           out.println("<th>Telefono</th>");
                           out.println("<th>Direccion</th>");
                           out.println("<th>Localidad</th>");
                           out.println("<th>Provincia</th>");
                           out.println("</tr>");
                           int contador = 0;
                           for (Iterator iter =
contactos.iterator(); iter.hasNext();){
                                  Agenda
a = (Agenda)iter.next();
                                  if (contador % 2 == 0){
                                        out.println("<tr
class='par'>");
                                        contador++;
                                  }
                                  else{
                                        out.println("<tr
class='impar'>");
                                        contador++;
                                  }
                                  out.println("<td>" + a.getApellidos() +
"</td>");
                                  out.println("<td>" + a.getNombre() + "</td>");
                                  out.println("<td>" + a.getTelefono() + "</td>");
                                  out.println("<td>" + a.getDireccion() +
"</td>");
                                  out.println("<td>" + a.getLocalidad() +
"</td>");
                                  out.println("<td>" + a.getProvincia() +
"</td>");
                                  out.println("</tr>");
                           }
                           out.println("</table>");
                    }                   
                    accionesAgenda.desconectarBD();
             %>
             <div class="contenedorButton">
             <a href="17a.jsp"><input type="submit" value="Volver a
menú" class="sign-up-button"></a>
             </div>
       </body>
</html>









0 comments:
Publicar un comentario