jueves, 31 de enero de 2013

Instalar Tomcat

Para instalar Tomcat 
1. Descargar el archivo desde la pagina oficial de Tomcat tomcat


2. Descomprimirlo con
tar xvfz apache-tomcat-7.0.34.tar.gz
con esto se crea la carpeta apache-tomcat-7.0.34.tar.gz

3.Moverlo a /opt (no es necesario puede ser cualquier directorio)
mv apache-tomcat-7.0.34.tar.gz /opt/


4.  Establecer los permisos para tomcat
chmod 755 /opt/apache-tomcat-7.0.34/bin/*.sh

5.Ejecutar
export JAVA_HOME=/opt/jdk1.5.0_08
export CATALINA_HOME=/opt/apache-tomcat-5.5.27

6. Correr tomcat
   cd apache-tomcat-5.5.20/bin/
   ./startup.sh
.
7. Detenerlo
   cd apache-tomcat-5.5.20/bin/
   ./shutdown.sh

8. cambiar el puerto 8080 de tomcat por el 80
   En el archivo /tomcat/conf/server.xml
   cambiar la linea.



 manual JSP
 

miércoles, 30 de enero de 2013

HTML 5


HTML5 (HyperText Markup Language, versión 5) es la quinta revisión importante del lenguaje básico de la World Wide Web, HTML. HTML5 especifica dos variantes de sintaxis para HTML: un «clásico» HTML (text/html), la variante conocida como HTML5 y una variante XHTML conocida como sintaxis XHTML5 que deberá ser servida como XML (XHTML) (application/xhtml+xml).1 2 Esta es la primera vez que HTML y XHTML se han desarrollado en paralelo.

Todavía se encuentra en modo experimental, lo cual indica la misma W3C; aunque ya es usado por múltiples desarrolladores web por sus avances, mejoras y ventajas.

Al no ser reconocido en viejas versiones de navegadores por sus nuevas etiquetas, se le recomienda al usuario común actualizar a la versión más nueva, para poder disfrutar de todo el potencial que provee HTML5.

El desarrollo de este lenguaje de marcado es regulado por el Consorcio W3C.

Descargar manual
  

martes, 29 de enero de 2013

Hora


El siguiente ejemplo muestra como mostrar en nuestra pagina la hora del cliente con código JavaScript, ademas también muestra la hora del servidor por medio de código Java



<%@ page import = "java.util.Date"%>
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Hora</title>
<script language="JavaScript">
function inicio(){
    var fecha = new Date()
    var hora = fecha.getHours()
    document.write (hora)
}
</script>
</head>

<body>
    Hora cliente
    <script>inicio()</script>
    <br><br>
<%
    out.println("Hora del servidor ");
    Date fecha=new Date();
    out.print(Integer.toString(fecha.getHours()));  
%>
</body>
</html>

lunes, 28 de enero de 2013

JavaScript


JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, en bases de datos locales al navegador... aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.

JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes.

Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM).

Tradicionalmente se venía utilizando en páginas web HTML para realizar operaciones y únicamente en el marco de la aplicación cliente, sin acceso a funciones del servidor. JavaScript se interpreta en el agente de usuario, al mismo tiempo que las sentencias van descargándose junto con el código HTML.

descargar manual

   
descargar ejemplo javascrip.zip

domingo, 27 de enero de 2013

Variables

Variable cadena


<%
String v1="esta es mi variable";
%>
<html>
<body>
Valor de la cadena : <%=v1%>
</body>
</html>


Variable entera


<%
int v2=5;
%>
<html>
<body>
Valor de la cadena : <%=v2%>
</body>
</html>

Variable flotante

<%
float v3=567.345f;
%>
<html>
<body>
Valor de la cadena : <%=v3%>
</body>
</html>

Variable booleana

<%
boolean v4=false;
%>
<html>
<body>
    <%
    if(v4==true)
    {
      out.print("Esto es verdadero");
    }
    else
    {
      out.print("Esto es falso");
    }
    %>
</body>
</html>

Variable fecha



<%@ page import="java.util.*" %>
<%@ page import="java.text.DateFormat" %>
<%@ page import="java.text.SimpleDateFormat" %>
<HTML>
<BODY>
<%
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date v5 = new Date();
%>
Esta es la fecha : <%= dateFormat.format(v5) %>
</BODY>
</HTML>

Variable array

<%
String[] v6=new String[4];
v6[0]="bob";
v6[1]="riche";
v6[2]="jacky";
v6[3]="rosy";
%>
<html>
<body>
    <%  
      out.print("Elemento de array :"+v6[2]);
    %>
</body>
</html>









sábado, 26 de enero de 2013

Conversiones

De cadena a numérico

<%
String v1 ="5";
int v2 = Integer.parseInt(v1);

out.println(v2);
%>


De cadena a float

<%
String v1 ="5.5";
float v2= Float.parseFloat(v1);

out.println(v2);
%>


De numerico a cadena

<%
int v1 = 500;
String v2 = String.valueOf(v1);

out.println(v2);
%>


viernes, 25 de enero de 2013

Estructura de control


a.) La sentencia if - else

La sentencia if-else de Java dota a los programas de la habilidad de ejecutar distintos conjuntos de sentencias según algún criterio.

La sintaxis de la sentencia if-else es:


if ( condición )
  Bloque de código a ejecutar si la condición es cierta
else
  Bloque de código a ejecutar si la condición es falsa


La parte del else es opcional, y un bloque de código puede ser simplemente la sentencia vacía ; para representar que en ese caso no se ha de ejecutar nada.

Supongamos que un programa debe realizar diferentes acciones dependiendo de si el usuario oprime el botón aceptar o el botón cancelar en una ventana de dialogo. Nuestro programa puede realizar esto usando la sentencia if - else:


<%
boolean respuesta=true;
if (respuesta == true) {
  out.println( "Su peticion esta siendo atendida" );
} else {
  out.println( "Cancelando accion" );
}
%>


Se pueden anidar expresiones if-else, para poder implementar aquellos casos con múltiples acciones. Esto es lo que se suele denominar como sentencias else if.

Por ejemplo, supongamos que se desea escribir un programa que clasifique según el contenido de una variable valor, asigne una letra a una variable clasificacion: A para un valor del 100-91, B de 90-81, C para 80-71 y F si no es ninguno de los anteriores:

int valor;
char clasificacion;
if (valor > 90)
  {clasificacion='A';}
else
  if (valor > 80)
    {clasificacion='B';}
  else
    if (valor > 70)
      {clasificacion='C';}
    else
      {clasificacion='F';}


Se pueden escribir los if en las mismas líneas que los else, pero desde este tutorial se insta a utilizar la forma indentada (como se ha podido ver en el ejemplo), pues es más clara para el lector.

Este sistema de programación (else if) no es demasiado recomendable, y por ello el lenguaje Java incluye la sentencia switch, que veremos a continuación, para dirigir el flujo de control de variables con múltiples valores.


b.) La sentencia switch

Mediante la sentencia switch se puede seleccionar entre varias sentencias según el valor de cierta expresión.

La forma general de switch es la siguiente:

switch ( expresionMultivalor ) {
  case valor1 : conjuntoDeSentencias; break;
  case valor2 : conjuntoDeSentencias; break;
  case valor3: conjuntoDeSentencias; break;
  default: conjuntoDeSentencias; break;
}


La sentencia switch evalúa la expresiónMultivalor y ejecuta el conjuntoDeSentencias que aparece junto a la cláusula case cuyo valor corresponda con el de la expresiónMultivalor.

Cada sentencia case debe ser única y el valor que evalúa debe ser del mismo tipo que el devuelto por la expresiónMultivalor de la sentencia switch.

Las sentencias break que aparecen tras cada conjuntoDeSentencias provocan que el control salga del switch y continúe con la siguiente instrucción al switch. Las sentencias break son necesarias porque sin ellas se ejecutarían secuencialmente las sentencias case siguientes. Existen ciertas situaciones en las que se desea ejecutar secuencialmente algunas o todas las sentencias case, para lo que habrá que eliminar algunos break.

Finalmente, se puede usar la sentencia default para manejar los valores que no son explícitamente contemplados por alguna de las sentencias case. Su uso es altamente recomendado.

Por ejemplo, supongamos un programa con una variable entera meses cuyo valor indica el mes actual, y se desea imprimir el nombre del mes en que estemos. Se puede utilizar la sentencia switch para realizar esta operación:

<%
int meses=10;

switch (meses){
  case 1: out.println( "Enero" ); break;
  case 2: out.println( "Febrero" ); break;
  case 3: out.println( "Marzo" ); break;
  case 4: out.println( "Abril" ); break;
  case 5: out.println( "Mayo" ); break;
  case 6: out.println( "Junio" ); break;
  case 7: out.println( "Julio" ); break;
  case 8: out.println( "Agosto" ); break;
  case 9: out.println( "Septiembre" ); break;
  case 10: out.println( "Octubre" ); break;
  case 11: out.println( "Noviembre" ); break;
  case 12: out.println( "Diciembre" ); break;
  default: out.println( "Mes no valido" ); break;
}

%>



Por supuesto, se puede implementar esta estructura como una sentencia if else if:

int meses;
if ( meses == 1 ) {
  out.println( "Enero" );
} else
  if ( meses == 2 ) {
    out.println( "Febrero" );
  }
  // Y así para los demás meses


El decidir si usar la sentencia if o switch depende del criterio de cada caso. Se puede decidir cuál usar basándonos en la legibilidad, aunque se recomienda utilizar switch para sentencias con más de tres o cuatro posibilidades.

c.) Bucle while

El bucle while es el bucle básico de iteración. Sirve para realizar una acción sucesivamente mientras se cumpla una determinada condición.

La forma general del bucle while es la siguiente:

while ( expresiónBooleana ) { 
  sentencias;
};


Las sentencias se ejecutan mientras la expresiónBooleana tenga un valor de verdadero.

Se utiliza, por ejemplo para estar en un bucle del que no hay que salir hasta que no se cumpla una determinada condición. Por ejemplo, multiplicar un número por 2 hasta que sea mayor que 100:

<%
int i = 1;
while ( i <= 100 ) {
  i = i * 2;
  out.println(i);
}
%>

Con él se podrían eliminar los bucles do-while y for por ser extensiones de éste, pero que se incluyen en el lenguaje para facilitar la programación.


d.) Bucle do-while

El bucle do-while es similar al bucle while, pero en el bucle while la expresión se evalúa al principio del bucle y en el bucle do-while la evaluación se realiza al final.

La forma general del bucle do-while es la siguiente:

do { 
  sentencias;
} while ( expresiónBooleana );

La sentencia do-while es el constructor de bucles menos utilizado en la programación, pero tiene sus usos, cuando el bucle deba ser ejecutado por lo menos una vez.

Por ejemplo, cuando se lee información de un archivo, se sabe que siempre se debe leer por lo menos un carácter:

<%
int c;
c=5;
do { 
  out.println(c);
  c--;  
} while(c>0); 
%>

e.) Bucle for

Mediante la sentencia for se resume un bucle do-while con una iniciación previa. Es muy común que en los bucles while y do-while se inicien las variables de control de número de pasadas por el bucle, inmediatamente antes de comenzar los bucles. Por eso el bucle for está tan extendido.

La forma general de la sentencia for es la siguiente:

for ( iniciación ; terminación ; incremento )
  sentencias;

La iniciación es una sentencia que se ejecuta una vez antes de entrar en el bucle.

La terminación es una expresión que determina cuándo se debe terminar el bucle. Esta expresión se evalúa al final de cada iteración del bucle. Cuando la expresión se evalúa a falso, el bucle termina.

El incremento es una expresión que es invocada en cada iteración del bucle. En realidad puede ser una acción cualquiera, aunque se suele utilizar para incrementar una variable contador:

for ( i = 0 ; i < 10 ; i++ )

Algunos (o todos) estos componentes pueden omitirse, pero los puntos y coma siempre deben aparecer (aunque sea sin nada entre sí).

Se debe utilizar el bucle for cuando se conozcan las restricciones del bucle (su instrucción de iniciación, criterio de terminación e instrucción de incremento).

Por ejemplo, los bucles for son utilizados comúnmente para iterar sobre los elementos de una matriz, o los caracteres de una cadena:

<%
for ( int i = 0; i < 5 ; i++){
    out.println(i);
}
%>

jueves, 24 de enero de 2013

Métodos de la clase String


+
Concatenación (unión de hilera).También permite
concatenar una hilera con un dato numérico o booleano.
EJEMPLO
String cadena = "Universidad " + " Técnica";


int length( ) 
Retorna la cantidad de caracteres que tiene la String
EJEMPLO
String cadena = “Universidad Técnica”;
int a = cadena.length();


String replace (char viejoChar, char nuevoChar)
Remplaza en la hilera que invoca el método, el viejoChar por el nuevoChar. Se utiliza para reemplazar caracteres
EJEMPLO
String hilera, cadena = "mamá";
hilera = cadena.replace(‘m’,’p’ );



String replaceAll (String viejaString, String nuevaString)
Remplaza en la hilera que invoca al método la vieja String por la nueva String. Se utiliza para reemplazar subhileras
EJEMPLO
String cadena = "José Soto";
cadena = cadena.replaceAll("Soto","Solís" );


String toLowerCase() 
Convierte todos los caracteres de la hilera a minúscula. Solo para hileras, no funciona para char.
EJEMPLO
String cadena = "JAVA";

String toUpperCase() 
Convierte todos los caracteres de la hilera a mayúscula. Solo para hileras, no funciona para char.
EJEMPLO
String cadena = "java";
cadena = cadena.toUpperCase();


boolean equals(String str): 
Compara la hilera que invoca al método con la del parámetro. Si son iguales retorna true y si nó, retorna false. Es sensitivo a mayúsculas y minúsculas.
EJEMPLO
String cadena1 = "alajuela", cadena2 = "Alajuela";
if (cadena1.equals(cadena2)){
out.println("Son iguales");
else
out.println("Son diferentes");


boolean equalsIgnoreCase (String str) 
Compara la hilera que invoca al método con la del parámetro. Si son iguales retorna true y si nó, retorna false. No es sensitivo a mayúsculas y minúsculas.
EJEMPLO
String cadena1 = "alajuela";
String cadena2 = "Alajuela";
if (cadena1.equalsIgnoreCase(cadena2)){
out.println("Son iguales");
else
out.println("Son diferentes");


int compareTo(String str1)
Compara 2 cadenas y retorna un valor numérico.:
Cero (o): si ambas cadenas son iguales
Un número < 0 si la primera hilera es menor a la segunda.
Un número > 0 si la primera hilera es mayor a la segunda.
EJEMPLO
String cad1="1234";
String cad2="1334";
valor=cad1.compareTo(cad2);
if(valor==0)
out.println("Son iguales";
else
if (valor<0)
out.println("cad1 menor cad2";
else
out.println("cad1 mayor cad2";


String trim()
Elimina espacios en blanco al principio y al final de la cadena. No elimina los espacios situados entre las palabras.
EJEMPLO
String cadena = " Programación 1 ";
cadena = cadena.trim();


String substring(int indiceInicial, int indiceFinal) 
Retorna el segmento de la String entre la posición ‘indiceInicial’ inclusive hasta una posición anterior a ‘indiceFinal’.
EJEMPLO
String cadena = "Desarrollo Orientado a Objetos";
out.println(cadena.substring(11,20));

char charAt (int indice)
Devuelve el carácter que ocupa la posición indicada por el índice. 
EJEMPLO 
String cadena = "Polimorfismo"; 
out.println(cadena.charAt(4)); 



bolean isLetter(char caracter)) 
Retorna un verdadero si el carácter del parámetro es una letra
EJEMPLO
char caracter;
if (Character.isLetter(caracter))
out.println(caracter +" es una letra");



bolean isDigit(char caracter)) 
Retorna un verdadero si el carácter del parámetro es un dígito
EJEMPLO
char caracter;
if (Character.isDigit(caracter))
out.println(caracter +" es un dígito");

bolean isUpperCase(char caracter) 
Retorna un verdadero si el carácter del parámetro es una letra mayúscula
EJEMPLO
char caracter;
if (Character.isUpperCase(caracter))
out.println(caracter +" es una letra mayúscula");

boolean isLowerCase(char caracter) 
Retorna un verdadero si el carácter del parámetro es una letra minúscula
EJEMPLO
char caracter;
if (Character.isLowerCase(caracter))
out.println(caracter +" es una letra minúscula");










miércoles, 23 de enero de 2013

La clase java.lang.Math


La clase java.lang.Math es una clase utilitaria cuyos métodos (todos estáticos) nos permiten realizar algunos cálculos matemáticos comunes.

Antiguamente Math implementaba cada uno de sus métodos, pero hoy en día hace uso de la clase java.lang.StrictMath para llevar adelante sus tareas, llegando al punto que prácticamente es lo mismo llamar a un método de Math como uno de StrictMath.

StrictMath utiliza librerías nativas (escritas en C) para realizar sus cálculos, asegurando entre otras cosas una mejor performance con números flotantes y repetibilidad de los resultados (si se llama un método con los mismos parámetros obtenemos exactamente el mismo resultado, bit a bit). Concretamente hace uso de la librería fdlibm (Freely Distributable Math Library) version 5.3 que es parte del proyecto netlib.



Constantes Matemáticas
Math tiene una referencia a las dos constantes más utilizadas en matemática con una precisión de 15 decimales (suficiente para la mayoría de los mortales). Si ejecutamos:

out.println("e = " + Math.E);
out.println("pi = " + Math.PI);


Conversiones Grados a Radianes, y viseversa
Tenemos dos métodos que realizan la tarea por nosotros

double angGrados = 45; //grados
double angRadianes = Math.toRadians(angGrados);
out.println("Deg a Rad: " + angGrados + "º = " + angRadianes + " rad");
angGrados = Math.toDegrees(angRadianes);
out.println("Rad a Deg: " + angRadianes + " rad = " + angGrados + "º");


Funciones Trigonométricas
Las funciones trigonométricas aceptan y devuelven los ángulos en radianes por lo que siempre hay que convertir desde/hacia grados.

Por ejemplo si ejecutamos:


double valor = 0;

double angulo = 45; //grados
double anguloRadianes = Math.toRadians(angulo);

valor = Math.cos(anguloRadianes);
out.println("Coseno de " + angulo + "º = " + valor);

valor = Math.sin(anguloRadianes);
out.println("Seno de " + angulo + "º = " + valor);

valor = Math.tan(anguloRadianes);
out.println("Tangente de " + angulo + "º = " + valor);

valor = 0.707;

anguloRadianes = Math.acos(valor);
angulo = Math.toDegrees(anguloRadianes);
out.println("Arco Coseno de " + valor + " = " + angulo + "º");

anguloRadianes = Math.asin(valor);
angulo = Math.toDegrees(anguloRadianes);
out.println("Arco Seno de " + valor + " = " + angulo + "º");

anguloRadianes = Math.atan(valor);
angulo = Math.toDegrees(anguloRadianes);
out.println("Arco Tangente de " + valor + " = " + angulo + "º");


Funciones Hiperbólicas

Las funciones hiperbólicas están disponibles a partir de la versión 1.5 Aún no existe implementaciones para las funciones inversas (acosh, asinh y atanh)

Del siguiente ejemplo:


double valor = 0;
double x = 1.0;
 valor = Math.cosh(x);
out.println("Coseno Hiperbolico de " + x + " = " + valor);
valor = Math.sinh(x);
out.println("Seno Hiperbolico de " + x + " = " + valor);
valor = Math.tanh(x);
out.println("Tangente Hiperbolica de " + x + " = " + valor);








martes, 22 de enero de 2013

Formularios


Para el envío de datos desde un formulario consideramos dos paginas, index.jsp q es la encargada de enviar datos y proceso.jsp que es la encargada de la recepción los datos y procesarlos.

En la primera crearemos un formulario <form action="proceso.jsp" method="post"> donde action="proceso.jsp" nos indica el nombre de la pagina a la que enviaremos los datos, y method="post" la forma de enviarlos(puede ser podt o get), todo lo que este dentro del formulario sera enviado para esto crearemos el boton submit <input type="submit" value="Enviar"> 

Otro dato importante a considerar son los nombres de las variables que queremos enviar, en este caso las asignaremos a cada text con la propiedad name <input type="text" name="nombre">


index.jsp


<html>
<head>
<title>HOLA FORMULARIOS</title>
</head>
<body>

<form action="proceso.jsp" method="post">
    Nombre: <input type="text" name="nombre">
    <br/>
    Apellido:  <input type="text" name="apellido">
    <br/>
    <input type="submit" value="Enviar">
</form>

</body>
</html>



ahora para la recepción los datos usaremos el objeto request (String)request.getParameter("nombre") , nombre es el nombre de el campo declarado en la pagina index.jsp, un dato importante es que los datos recepcionados son tipo cadena, por lo tanto si deseamos hacer cálculos con ellos se tendrá que convertirlo a float o int según sea necesario

proceso.jsp
<html>

<head>
<title>HOLA FORMULARIOS</title>
</head>
<body>

<%
   String lnombre=(String)request.getParameter("nombre");
   String lapellido=(String)request.getParameter("apellido");
   out.print("tu nombre es "+lnombre+" "+lapellido);
%>

</body>
</html>




lunes, 21 de enero de 2013

Boleta de pago


Se desea elaborar la boleta de pago de los trabajadores de una fábrica.
Para ello se cuenta conlos siguientes datos de entrada:
Apellidos y nombres del trabajador
Sueldo básico
Horas extras trabajadas

Además, se sabe que los trabajadores laboran en dos turnos: diurno y nocturno.

Y que la tarifa por las horas extras diurnas es de 10 soles y por las horas extras nocturnas es de 15 soles.

Los descuentos a aplicar son sobre el sueldo básico y se obtienen de la siguiente manera:
Renta = (SueldoBasico/100)*10
Fonavi = (SueldoBasico/100)*7
AFP = (SueldoBasico/100)*3
Finalmente el sueldo neto del trabajador se calcula mediante las siguientes expresiones:
Ingresos = SueldoBasico + HorasExtras * PagoHoraExtra
Egresos = Renta + Fonavi + AFP
SueldoNeto = Ingresos - Egresos
El diseño de la interfaz deberá ser similar a la figura mostrada

index.jsp

<%@ page language='java' contentType='text/html;charset=iso-8859-1'%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Boleta de Pago</title>
        <style>
            html,body { height:100%; margin:0; padding:0; font-family: sans-serif;}
            .azul{font-family: sans-serif;color:#3B5998;font-size: 12px; }
            .blanco{font-family: sans-serif;color:#FFFFFF;font-size: 12px; }
            .blancog{font-family: sans-serif;color:#FFFFFF;font-size: 20px;font-weight:bold; }
            .texto{font-family: sans-serif;font-size: 12px; border-style:solid; border-width:1px;border-color:#C8C8C8; }
        </style>
    </head>
    <body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr height="60">
        <td bgcolor="#3B5A98">
            <font class="blancog"><b>Sertex System S.A.C.</b></font><br>
            <font class="blanco">Empresa lider del mercado</font>
        </td>
        <td height="*" bgcolor="#3B5A98"> </td>
        <td bgcolor="#3B5A98" align="right">
            <font class="blancog"><b>Boleta de Pago</b></font><br>
            <font class="blanco">Sistema de personal</font>
        </td>
    </tr>
    <tr><td align="center" colspan="3"><br>
       
        <form action="proceso.jsp" method="post">
        <table width="500"  bgcolor="#EAEAEA">
        <tr>
            <td colspan="2"><font class="azul"><b>BOLETA DE PAGO</b></font><hr></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">Nombres del trabajador : </font></td>
            <td><input type="text" name="trabajador" class="texto" style="width:300px;"></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">Sueldo basico S/. : </font></td>
            <td><input type="text" name="sueldo" class="texto" value="800.0" style="width:80px;"></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">Horas extras : </font></td>
            <td><input type="text" name="horas" class="texto" value="12" style="width:80px;"></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">Turno : </font></td>
            <td>
                  <select name="turno" class="texto">
                  <option value="diurno">Diurno
                  <option value="nocturno" selected>Nocturno
                  </select>
            </td>
        </tr>
        <tr>
            <td colspan="2"><font class="azul"><b>Descuentos</b></font><hr></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">Renta : </font></td>
            <td><input type="checkbox" name="renta" value="si"></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">Fonavi : </font></td>
            <td><input type="checkbox" name="fonavi" value="si"></td>
        </tr>
        <tr>
            <td align="right"><font class="azul">AFP : </font></td>
            <td><input type="checkbox" name="afp" value="si"></td>
        </tr>
        <tr>
            <td colspan="2" align="center"><hr><input type="submit" value="Calcular"></td>
        </tr>
    </table>
    </form>
       
    </td></tr>
</table>
</body>
</html>


proceso.jsp
<%@ page language='java' contentType='text/html;charset=iso-8859-1'%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Boleta de Pago</title>
        <style>
            html,body { height:100%; margin:0; padding:0; font-family: sans-serif;}
            .negro{font-family: sans-serif;font-size: 12px; }
            .negrog{font-family: sans-serif;font-size: 20px;font-weight:bold; }
        </style>   
    </head>
    <body>

<%
   String trabajador=(String)request.getParameter("trabajador");
   String ssueldo=(String)request.getParameter("sueldo");
   float  sueldo= Float.parseFloat(ssueldo);
   String shoras=(String)request.getParameter("horas");
   float  horas= Float.parseFloat(shoras);
   String turno=(String)request.getParameter("turno");
   String srenta=(String)request.getParameter("renta");
   String sfonavi=(String)request.getParameter("fonavi");
   String safp=(String)request.getParameter("afp");
  
   float extras = 0;
   if (turno.equals("nocturno")){
       extras=15;
   } else {
       extras=10;
   }
   float renta = 0;
   if(srenta!=null){
   if(srenta.equals("si")){
        renta = (sueldo/100)*10;
    }}
   float fonavi = 0;
   if(sfonavi!=null){
   if(sfonavi.equals("si")){
        fonavi = (sueldo/100)*7;
    }}
   float afp = 0;
   if(safp!=null){
   if(safp.equals("si")){
        afp = (sueldo/100)*3;
    }}
  
   float ingresos = sueldo + horas * extras;
   float egresos = renta + fonavi + afp;
   float neto = ingresos - egresos;
  
 %>

 <table width="700" border="0" cellspacing="0" cellpadding="0">
    <tr><td colspan="4" align="center">
        <font class="negrog">BOLETA DE PAGO - Empleados</font><br>
        <font class="negro"><b>10-05-2012  -  31-05-2012</b></font>
    </td></tr>
    <tr><td colspan="4" bgcolor="#000000" height="2"></td></tr>
    <tr>
        <td width="150"><font class="negro"><b>Empleado :</b></font></td>
        <td width="200"><font class="negro"><%= trabajador.toUpperCase() %></font></td>
        <td width="150"><font class="negro"><b>Sueldo basico S/.</b></font></td>
        <td width="200"><font class="negro"><%= sueldo %></font></td>
    </tr>
    <tr>
        <td width="150"><font class="negro"><b>Horas extras :</b></font></td>
        <td width="200"><font class="negro"><%= horas %></font></td>
        <td width="150"></td>
        <td width="200"></td>
    </tr>
    <tr>
        <td width="150"><font class="negro"><b>pago hora extra S/.</b></font></td>
        <td width="200"><font class="negro"><%= extras %></font></td>
        <td width="150"><font class="negro"><b>Turno :</b></font></td>
        <td width="200"><font class="negro"><%= turno.toUpperCase() %></font></td>
    </tr>
    <tr><td colspan="4" bgcolor="#000000" height="1"></td></tr>
    <tr><td colspan="4"><font class="negro"><b>Descuentos :</b></font></td></tr>
    <tr><td colspan="4" bgcolor="#000000" height="1"></td></tr>
    <tr>
        <td width="150"><font class="negro"><b>Renta :</b></font></td>
        <td width="200"><font class="negro"><%= renta %></font></td>
        <td width="150"><font class="negro"><b>Fonavi :</b></font></td>
        <td width="200"><font class="negro"><%= fonavi %></font></td>
    </tr>
    <tr>
        <td width="150"><font class="negro"><b>AFP :</b></font></td>
        <td width="200"><font class="negro"><%= afp %></font></td>
        <td width="150"></td>
        <td width="200"></td>
    </tr>

    <tr><td colspan="4" bgcolor="#000000" height="1"></td></tr>
    <tr><td colspan="4"><font class="negro"><b>Sueldo neto S/. <%= neto %></b></font></td></tr>
    <tr><td colspan="4" bgcolor="#000000" height="1"></td></tr>
 </table> 


</body>
</html>



domingo, 20 de enero de 2013

Conexion a MySQL


Antes de probar el codigo debemos incluir la librería de conexión MySql
en la pestaña "Projects" a la izquierda de Netbeans, desplegamos el proyecto en Libraries damos click-derecho y en el menú click en Add Library

ahora en la ventana emergente buscamos MySQL JDBC Driver, y la agregamos al proyecto


Para la conexion a Mysql se cuenta con una base de datos llamada productos

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

String user = "root";
String password = "123";
String host = "localhost";
String db = "productos";
String url = "jdbc:mysql://"+host+"/"+db;

Connection conn = null;
Statement statement = null;
ResultSet rs = null;

Class.forName("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection(url, user, password);

statement = conn.createStatement();
rs = statement.executeQuery("SELECT id,departamento FROM departamento");

while(rs.next()) {
    out.println(rs.getString("departamento"));
}
    
rs.close();
conn.close();    
%>



sábado, 19 de enero de 2013

Clase conexion



import java.util.*;
import java.sql.DriverManager;
import java.sql.Connection;

import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
/**
 *
 * @author blas
 */
public class conexion {
    private String      user="root";
    private String      password="110185";
    private String      host="localhost";
    private String      database="productos";
    private Connection  conexion    = null;

    public conexion() { }

    public boolean onConnection()
    {
        String cadena="";
        boolean     conectado=false;
     
        conectado=false;
        try
        {
            Properties props = new Properties();
            props.setProperty("user", user);
            props.setProperty("password", password);
            props.setProperty("encoding", "ISO8859_1");

            try{
                Class.forName("com.mysql.jdbc.Driver");
                cadena="jdbc:mysql://"+host+"/"+database;

                conexion = DriverManager.getConnection(cadena, user, password);
                conectado=true;
            } catch (Exception e) {
                conectado=false;
            }
        } catch (Exception e) {
            conectado=false;
        }
        return conectado;
    }
 
    public void offConnection()
    {
        try
        {
            conexion.close();
        } catch (Exception e) { }
    }

    public ResultSet SQLResultSet(String sql) {
        ResultSet   rs = null;
        try
        {
            Statement s = conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            rs = s.executeQuery(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rs;
    }
 
    public boolean SQLUpdate(String csql) {
        ResultSet   rs = null;
        String      sql=csql;
        boolean     retorno=false;
        try {
            conexion.setAutoCommit(false);
            try {
                Statement s = conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                s.executeUpdate(sql);
             
                conexion.commit();
                conexion.setAutoCommit(true);
                retorno=true;

            } catch(SQLException c) {
                conexion.rollback();
                conexion.setAutoCommit(true);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return retorno;
    }
}



<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page language="java" %> 
<%@ page import = "includes.conexion"%> 
<%@ page import = "java.sql.Statement"%> 
<%@ page import = "java.sql.ResultSet"%> 
<%
    conexion lconexion = new conexion();
    lconexion.onConnection();

    String sql="SELECT id,distrito from distrito order by 2";   
    ResultSet   rs = lconexion.SQLResultSet(sql);
    
    while (rs.next()) {
        out.println(rs.getString("distrito")+"<br>");
    }
 %>