domingo, 30 de noviembre de 2014

Actividades a entregar

  • Mapa conceptual sobre: control de datos, maneras de compartirlos y chequeo de tipos de datos en el lenguaje JSP.
  • Prácticas con un reporte de cada una:
  1. Subir archivos a un servidor.
  2. Conexión a la BD y CRUD de operaciones básicas: insertar, buscar, modificar y eliminar registros a una BD.
  3. Validar si el usuario ya existe y validar los caracteres de entrada al formulario.
  4. Crear archivos PDF.

Proyecto final

  • Viernes 5 de dic. Entregar el proyecto con JSP y Base de Datos funcionando.
  • Domingo 7 de dic. Entregar reporte con la siguiente descripción:
El reporte deberá mostrar una descripción coherente y completa del desarrollo del proyecto. Deberá iniciar con una descripción de requerimientos y un análisis del mismo. En el análisis se deberán elaborar los diagramas de casos de uso, de clases y entidad-relación. Además deberán explicarse los detalles de su implementación. Agregar el código comentado y las pantallas del funcionamiento del programa. Explicar los resultados obtenidos.
  • Domingo 7 de dic. Presentación en PowerPoint con los resultados obtenidos.
Subir proyecto a Drive

viernes, 21 de noviembre de 2014

Ejemplo Sesiones con Base de Datos

login.jsp
Código:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
// Leemos la variable de sessión 'validado'
Boolean validado = (Boolean) session.getAttribute( "validado" );
// Si la variable de session 'valiadado' ya
// ha sido creada o el valor es 'true'
if( validado!=null && validado.booleanValue())
// Redireccionamos a la página bienvenido.jsp
response.sendRedirect( "bienvenido.jsp" );
%>
<!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>Login</title>
</head>
<body>
<%
// Leemos la variable de sesión 'usuario'
String usuario = (String) session.getAttribute( "usuario" );
// Si las variable de sesión 'validado'
// y 'usuario' ya habia sido creadadas
if(validado!=null && usuario!=null)
// Mostramos mensaje de advertencia
out.println("<p>Usuario o contraseña incorrectos</p>");
// Si la variable de sesión usuario
// no ha sido creada
if(usuario==null)
// Instanciamos la variable local 'usuario'
usuario = "";
// Borramos la variable de sesión 'usuario'
session.setAttribute( "usuario", null);
%>
<form method="post" action="bienvenido.jsp" name="formLogin">
<input type="text" name="usuario" value="<%=usuario%>"><br>
<input type="password" name="contrasena"><br>
<input type="submit" name="enviar" value="enviar">
</form>
</body>

bienvenido.jsp

Código:
<%@ page import="java.sql.*" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
// Leemos la variable de sesión 'validado'
Boolean validado = (Boolean) session.getAttribute( "validado" );
// Si la variable de sesión 'validado' no ha
// sido creada o contiene un valor 'false'
if( validado==null || !validado.booleanValue() )
{
// Leemos la variable POST 'usuario'
String usuario= request.getParameter( "usuario" );
// Leemos la variable POST 'contrasena'
String contrasena = request.getParameter( "contrasena" );
// Si las variables POST 'usuario' y 'contrasena'
// existen y 'usuario' contiene texto
if(usuario!=null && contrasena!=null && !usuario.equals("") )
{
// Establecemos la variable de sessión 'usuario'
session.setAttribute( "usuario", usuario);
// Cargamos el Driver de MySQL
Class.forName( "com.mysql.jdbc.Driver" );
// Creamos una conección a MySQL, Sintaxis:
// jdbc:mysql://[servidor]:[puerto]/[base de datos], usuario, contraseña
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/test" , "root", "tu_contraseña" );
// Creamos un Statement
Statement stmt = conn.createStatement();
// Cramos un Resultado de Consulta SQL
ResultSet rs = stmt.executeQuery(
"SELECT usuario FROM usuarios " +
"WHERE usuario='" + usuario + "' " +
"AND contrasena='" + contrasena + "'"
);
// Si el resultado contiene filas
if( rs.next() )
// Establecemos la variable local
// 'validado' a true
validado = new Boolean(true);
// Cerramos el Statment
stmt.close();
// Cerramos la conexión
conn.close();
}
}
// Si la variable de sesión
// 'validado' no ha sido creada
if(validado==null)
// Establecemos la variable local
// 'validado' a true
validado = new Boolean(false);
// Añadimos la variable de sesión 'validado'
// con el contenido de la variable local
session.setAttribute( "validado", validado);
// Si la variable local 'validado' es false
if( !validado.booleanValue() )
// Redireccionamos a la página login.jsp
response.sendRedirect( "login.jsp" );
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Bienvenido</title></head>
<body>Bienvenido</body>
</html>

martes, 18 de noviembre de 2014

PDF con BD MySQL

<%@page import="java.servlet.*,
        javax.servlet.http.*,
        java.io.*,
        java.util.*,
        com.itextpdf.text.pdf.*,
        com.itextpdf.text.*,java.sql.*"
%>

<%
response.setContentType("application/pdf");
Document document = new Document();
try{
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, buffer);
    document.open();
       PdfPTable table=new PdfPTable(2);
       table.addCell("First Name");
       table.addCell("Last Name");
       Class.forName("com.mysql.jdbc.Driver");
       Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/trydb", "root", "root");
       Statement st=con.createStatement();
       ResultSet rs=st.executeQuery("Select * from trytable");
       while(rs.next()){

       table.addCell(rs.getString("fname"));
       table.addCell(rs.getString("lname"));
       }

    document.add(table);   
    document.close();

    DataOutput dataOutput = new DataOutputStream(response.getOutputStream());
    byte[] bytes = buffer.toByteArray();
    response.setContentLength(bytes.length);
    for(int i = 0; i < bytes.length; i++)
    {
        dataOutput.writeByte(bytes[i]);
    }

}catch(DocumentException e){
    e.printStackTrace();
}

%>

/* Database : trydb 

create table trytable (fname varchar(10), lname varchar(10));  */

-------------------------------------------------------------
Dando formato:

Párrafos, fotos y tablas

http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_creaci%C3%B3n_de_un_pdf_con_iText

Incluir fecha: document.add(new Paragraph("Hola a todos!"));
document.add(new Paragraph(new Date().toString()));

crear PDF básico- Instalar librería

Librería iText: Descargar
o también se puede descargar de:

http://itextpdf.com/download.phphttp://sourceforge.net/projects/itext/files/

----------------------------------------------------------------
Código básico:

<%@page import="java.io.*, com.itextpdf.text.*, com.itextpdf.text.pdf.*"%>
<%
    response.setContentType( "application/pdf" );
    // Paso 1:
    Document documento = new Document();
    // Paso 2:
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    PdfWriter.getInstance( documento, buffer );
    // Paso 3:
    documento.open();
    // Paso 4:
    documento.add(new Paragraph("Hola mundo"));
    // Paso 5:
    documento.close();
    // se escribe la salida
    DataOutput output = new DataOutputStream( response.getOutputStream() );
    byte[] bytes = buffer.toByteArray();
    response.setContentLength(bytes.length);
 
    for( int i = 0; i < bytes.length; i++ ) {
            output.writeByte( bytes[i] );
    }
%>

----------------------------------------------------------
Repetimos lo mismo pero ahora con una tabla

<%@
page import="java.servlet.*,
        javax.servlet.http.*,
        java.io.*,
        java.util.*,
        com.itextpdf.text.pdf.*,
        com.itextpdf.text.*,java.sql.*"
%>

<%
response.setContentType("application/pdf");
Document document = new Document();
try{
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, buffer);
    document.open();


    PdfPTable table = new PdfPTable(2);
    table.addCell("1");
    table.addCell("2");
    table.addCell("3");
    table.addCell("4");
    table.addCell("5");
    table.addCell("6");      
  
    document.add(table);      
    document.close();
  
    DataOutput dataOutput = new DataOutputStream(response.getOutputStream());
    byte[] bytes = buffer.toByteArray();
    response.setContentLength(bytes.length);
    for(int i = 0; i < bytes.length; i++)
    {
        dataOutput.writeByte(bytes[i]);
    }
  
}catch(DocumentException e){
    e.printStackTrace();
}
%>

lunes, 10 de noviembre de 2014

Validación de caracteres

Script para validar la entrada de los caracteres que se escriban en nombre y correo:

<script>
  function valida_envia(){
                var er_nombre = /^([0-9]|[0-9]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/
        //expresion regular solo letras
                 var sr_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/
         //expresion regular solo numeros
         var correo =  /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/
         //expresion regular correo electronico

//primer bloque validamos el nombre
  if(!sr_nombre.test(document.fvalida.usuario.value)) {
         alert('Nombre no valido .')     
                                document.fvalida.usuario.focus()
                 document.fvalida.usuario.value = ""
        return false
   }
   if(!sr_nombre.test(document.fvalida.password.value)) {
         alert('Apellido no valido')
                                document.fvalida.password.focus()
                 document.fvalida.password.value = ""
         return false
   }


   if(!sr_nombre.test(document.fvalida.nombre.value)) {
         alert('edad no valida')
                                document.fvalida.nombre.focus()
                 document.fvalida.nombre.value = ""
         return false
   }
  if(!sr_nombre.test(document.fvalida.estado.value)) {
         alert('correo no valido')
                                document.fvalida.estado.focus()
                 document.fvalida.estado.value = ""
         return false
   }
   //el formulario se envia si todo esta correcto
               
                document.fvalida.submit();
}

</script>