Es muy importante tener separado el código de la interfaz en una aplicación web, soluciones como .net, java y ruby son los mas avanzados en este aspecto, seguido de PHP 5 que apenas anda avanzando en esos aspectos.

Yo ocupo Java por mi tesis, una de las diferencias con asp es el servidor, asp solo correo sobre windows, mientras que tomcat, el servidor de los jsp, sobre cualquier S.O.

Aquí he armando un pequeño tutorial para los pobres como yo que tengan que hacer un sistema que incluya el acceso a la bd, este ejemplo es solo de un insert, espero les sirva.

Primero habra que descargar la nueva versión de netbeans. Netbean y no eclipse, por que es un IDE que esta mejor, ya viene con el Tomcat incluido, si quieren ocupar eclipse tendrían que buscar la versión de myeclipse y es de paga, además que no esta nada bueno.

Una vez realizado, habrá que buscar el driver de mysql para java, solo hay que entrar a la página de mysql y descargarlo, una vez realizado tenemos que buscar la carpeta de Netbeans en nuestro directorio y seguir la siguiente ruta: C:/program files/netbeans5.5/enterprise3/apache-tomcat/common/lib y en lib pegar nuestro mysql-connector-java.jar .

Vamos bien, abrimos nuestro glorioso netbeans y creamos un proyecto web file-New Project-Web, lo demas es darle nombre…bla…bla, por intuición jeje.

Vamos bien?, va!!, ahora la maravilla llamada netbeans nos ha creado de lado derecho un iconito de un globlo azul, con el nombre de nuestro proyecto, si lo abrimos veremos que ha creado una estructura como la siguiente:

est1.JPG

 

 

 

 

 

Esta es una parte importante, en :

Web pages se van a guardar nuestra interfaz, cualquier archivo con contenido html estará aquí.

Source Packages: guardará todas las clases, todo aquello que tenga que con código o modelo de control estará aquí , es muy recomendable y básico que antes de crear tus clases hagas “paquetes”, así podrás hacer un uso mas controlado de los bean.

Libreries: recordarás que has pegado el archivo de mysql-driver-java en common/lib, pues ahora solo hay que agregarlo a nuestra libreria para poder hacer uso de el, esto es muy sencillo, dando clic derecho en libraries aparecerá un menú emergente donde seleccionaremos Add Jar/Folder y buscaremos el mysql-driver-java.

Hasta ahora ningún problema creo yo,biene lo bueno, el código, aqui esta esta clase que he llamado “ConexiónBd”, para crearla nos vamos Source Packages , botón derecho y de una vez creamos nuestro “paquete”, seleccionamos la opción de New - Java Package le damos un nombre al paquete y listo, repetimo el proceso de source…botón derecho pero ahora crearemos la clase, igual de sencillo, botón derecho New-Java Class .

Crearemos algo como esto:

package usuario;
* @author Administrator
import java.sql.*;
public class ConexionBd {

public String error=”";
public Connection con=null;
private Statement stt;
private ResultSet rSet;

public boolean conectaBd(){
boolean resp=false;
try{
Class.forName(”org.gjt.mm.mysql.Driver”).newInstance();
this.con=DriverManager.getConnection(”jdbc:mysql://localhost/bolsa_de_trabajo”,”root”,”23456789″);
System.out.print(”se conecto a la bd”);
resp=true;
}catch(Exception e){
System.out.println(”No se puede realizar la conexión”);
System.out.println(e);
}
return resp;
}

public ConexionBd() {
super();
}

public int Inserta (String sentencia){
int dat=0;
if(conectaBd()){
try{
this.stt=this.con.createStatement();
dat=this.stt.executeUpdate(sentencia);
this.stt.close();
this.con.close();
}
catch(Exception e){
this.error=”no se puedo realizar el insert a la bd”;
}
}
return dat;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
ConexionBd c = new ConexionBd();
c.conectaBd();

}
}

Es esqueleto de la conexión se la debemos al malisimo malo , un develop muy locochon en java.

No me voy a detener a explicarla, mejor entren a google y busquen referencias.

Ya tenemos algo que es la clase que conecta, ahora vamos a crear la clase que de Registro, el proceso es mismo que el pasado y quedará algo asi:

package usuario;
public class Registro {
private String nombre;
private String correo;
private String contrasenia;
ConexionBd conecta=new ConexionBd();

public Registro() {
super();
}

public void setNombre(String Nombre){
nombre=Nombre;
}
public void setCorreo(String Correo){
correo=Correo;
}
public void setContrasenia(String Contrasenia){
contrasenia=Contrasenia;
}
public String getNombre(){
return nombre;
}
public String getCorreo(){
return correo;
}
public String getContrasenia(){
return contrasenia;
}
public void AgregaRegistro(){
int datos=this.conecta.Inserta(”INSERT into prueba”+
“(nombre,correo)”+
“values (’”+this.getNombre()+”‘,’”+this.getCorreo()+”‘)”);
}

}

En las dos clases hay que poner atención al contructor, tu clase debe de llevarlo, el constructor es esta parte:

public Registro() {
super();
}

Apunto de terminar, solo falta la interfaz , de la misma manera que se agrego el paquete, ahora daremos clic en web pages - New- Jsp y no has creado parte de la interfaz, yo la he nombrado registro.jsp y el código es este:

<%@ page language=”java” import=”java.util.* , java.sql.*, usuario.Registro” pageEncoding=”ISO-8859-1″%>
<jsp:useBean id=”registro” class=”usuario.Registro” scope=”page”>
<jsp:setProperty name=”registro” property=”*”></jsp:setProperty>
</jsp:useBean>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<body>
<% if (request.getParameter(”nombre”)==null &&
request.getParameter(”correo”)==null &&
request.getParameter(”password”)== null) {
%>
<form name=”registro” method=”POST” action=”usuario/registro.jsp”>
<p>Nombre</p><input type=”text” name=”nombre” /><br />
<p>Correo</p><input type=”text” name=”correo” /><br />
<p>Contraseña</p><input type=”password” name=”contrasenia” /><br />
<p><button type=”submit”>Enviar</button></p>
</form>
<% }else{
registro.AgregaRegistro();
}%>
</body>
</html>

Podran notar a simple vista que hay el código en jsp, el que esta en <%%> es mínimo, por lo cual hemos respetado el principio de mantener separado nuestro modelo, como dato java maneja “n capas” y no el típico de 3 capas.

El corazón de esto comienza aqui:

<%@ page language=”java” import=”java.util.* , java.sql.*, usuario.Registro” pageEncoding=”ISO-8859-1″%>

Con esa instrucción estamos jalando a esta hoja como mínimo nuestra clase (importante!!) y las librería de sql de java .

El bean, la parte que liga nuestra clase con la interfaz, este bean se compone de:

<jsp:useBean id=”registro” class=”usuario.Registro” scope=”page”>
<jsp:setProperty name=”registro” property=”*”></jsp:setProperty>
</jsp:useBean>

<% if (request.getParameter(”nombre”)==null &&
request.getParameter(”correo”)==null &&
request.getParameter(”password”)== null) {
%>

<% }else{
registro.AgregaRegistro();
}%>

id: es declarar una variable con la cual vamos a identificar a esa clase

class: invocamos a nuestra clase

scope: son 4 tipos sesion, page,request y application

En este caso es page, por que solo queremos mantener con vida ese bean mientras estamos en esa hoja.

<jsp:setProperty> ayuda hacer el insert, set property espara asignar los valores de nuestros text en html a java, este se compone de :

Name: el nombre de este set, que tiene que ser igual o se recomiendo sea igual al id del bean .

Property :al poner “*”estamos diciendo que nuestras variables en la clase se llaman al igual que la interfaz, esto lo vemos aqui x ejemlo

en a clase en la pagina

private String nombre; <p>Nombre</p><input type=”text” name=”nombre” /><br />

private String correo; <p>Correo</p><input type=”text” name=”correo” /><br />

private String contrasenia; <p>Contraseña</p><input type=”password” name=”contrasenia” /><br />

 

La pregunta:

 

<% if (request.getParameter(”nombre”)==null &&
request.getParameter(”correo”)==null &&
request.getParameter(”password”)== null) {
%>

 

Simplemente si los text estan vacios nos lleva al form, una vez llenados invocamos:

 

<% }else{

registro.AgregaRegistro();

}%>

 

Invocamos al método que esta en el código de Registro.java con registro.AgregaRegistro(); , registro es el id del bean.

 

¿Qué le falta a esto?

 

Si registras a en email tiene primero que hacer un búsqueda.

Establecer sesiones.

Reenviarlo a otra hoja.

El código en javascript.

 

Conforme avance lo postearé, espero que esto les sirva, no soy ningún experto en java.

 

Ligas recomendadas:

http://www.jsptut.com/Forms.jsp

http://java.sun.com/developer/technicalArticles/xml/WebAppDev/

http://www.mygnet.com/articulos/j2ee/781/

http://geneura.ugr.es/~jmerelo/JSP/

Si tienes correcciones a esto o aportaciones, x fa comentalas aquí para también aprender

 

 



23 Responses to “** Tutorial JSP y bean **”  

  1. 1 zsamer

    Hola, gracias por el manual, tengo un problema:

    no he podido hacer funcionar el sistema, y he seguido paso a paso.

    El error es el siguiente:

    Post en Foros del Web

    ¿Será pro la versión de java?
    Tengo instalada JDK 6u1

    Saludos.

  2. 2 aumakua

    Ese mismo mensaje me mostraba a mí pero ocupando eclipse o myeclipse, por que no reconoce el bean.

    Que herramienta ocupas?.

  3. 3 zsamer

    hola ocupo Netbean, tal como lo explica el tutorial “Primero habra que descargar la nueva versión de netbeans.” y seguí los paso uno a uno.

    Finalmente lo solucioné con compilarlo y funcionó sin problema “Run”.

    ¿Que tal es myeclipse?
    también hay otro híbrido de eclipse llamado EasyEclipse.

  4. 4 enrique

    hola como ta me parecio interesante tu manual espero me envies tu correo para conversar ami tmb me gusta java jsp espero tu respuetsta te dejo mi correo que lo tienes bye espero me agregues

  5. 5 Sergio

    aumakua, muy buen ejemplo de como utilizar bean con jsp. Gracias, me fue de gran ayuda.

  6. 6 Ronald(Falcon-Venezuela)

    Me parecio muy bien tu explicación. De verdad gracias, el detalle es que no se como configurar el servidor

  7. 7 aumakua

    Gracias, no hay necesidad de configurar nada, netbeans lo lanzo por default, si estas en windows también puedes bajar la versión ejecutable y en la carpeta webapps guardas tus archivos.

    Saludos.

  8. 8 toston

    Necesito saber como veo el diseño de un jsp en netbean… en mi caso solo veo el editor, osea el codigo…. necesito ver el diseño para ver como esta quedando sin ejecutarlo.

  9. 9 Suheidi

    Oye Julio ,
    Actualmente estoy programando el sistema del Azul Tequila, ahorita estoy en el modulo financiero; y me salio una duda ,bueno no se si tu conozcas de algun tipo de framework que me permita hacer las tareas mas automatizadas y faciles,
    Espero me puedas recomendar uno y ayudar a programar cada vez mejor…..
    Por que eso de JSP y Beans la verdad que esta muy obsoleto mi Juliio, me decepcionas..!!!!

  10. 10 Erica

    mmmm….. frameworks conocidos para jsp struts, pagina oficial http://struts.apache.org/.

    al autor:
    muy bueno, tu material, actualmente estoy haciendo un proyecto web para la defensa de tesis, y me gustaria poder intercambiar ideas para posibles dudas, si puedes escribeme al email o agregame al msn… Gracias!!!

  11. 11 natalia

    necesito conecta mysql y java en eclipse necesito saber porque no e acepta el codigp qe necesito intalar en eclipse para que funcione

  12. 12 Langsuyar Deugenberg

    Para conectar MySQl y Java necesitas descargar el API ofrecido en la página de MySQL (http://dev.mysql.com/downloads/connector/j/5.1.html ) y para correrlo en eclipse solo tienes que agregarlo al Build Path de tu proyecto ( Project > Properties > Java Build Path > Libraries > Add Externals JARs…

    Espero esta información te sirva, cualquier detalle puedes mandar un correo a klowjegg@hotmail.com.

  13. 13 vanesa

    hola buen tutorial…
    tengo unas dudas no se si me puedan auxiliar…
    como puedo mostrar informaciòn en comboslist consultando desde una bd en mysql, para despues de elegir la opciòn registarla en otra tabla…
    espero respuestas… gracias

  14. 14 Paty

    necesito saber como configurar netbean,posgre y apache tomcat en suse 10.2 ¿me ayudarias?

  15. 15 jose luis cordero ariza

    vale parse gracias yo estoy estudiando y en tre los progrmas que veo esta jsp he visto poco la verdad pero se que saldre ducho de esto me encanta todo lo realcionado con java ha y apropocito pruebe el ultimo netbeans exelente con macromedia osea el html incorporado hace poco tuve una conferencia con sun microsistem y uno de sus temas era darnos a conocer este sistema exelente cuando quiera scribame y nos pasamos datos, me encanta esto y lo estoy estudiando

    y si me logra entender bacano por estar el la luz y no el lado oscuro de la fuerza microsft pesimos si me entende bien si no escribame y le esplico bien todo bien y cracias parce

  16. 16 jose luis cordero ariza
  17. 17 lau

    hola aumakua:

    Muy buen tutorial, yo tambien estoy realizando una tesis con java, por las mismas caracteristicas que mencionaste, ojala puedas seguir publicando mas de estos … espero me puedas agregar al msn me gustaria mucho… BYE!!!!

  18. 18 edu

    hola me parece bien q hayas puesto tu manual..
    pero le fata estandares y definir mas claro las capas usando JDBC ….pero buen aporte..

  19. 19 Remberto

    gracia por el manual m sirve de mucho para aprender loq necesito

  20. 20 Eloy

    interesante . . .

  21. 21 Ozkar86

    Interesante tu manual, ya me habia olvidado algunas cosas del .jsp, gracias x tu tiempo, y dedicatoria al realizar este minituto, basico simple y entendible, un saludo desde Lima Perú, ya agregare unos ejemplos básicos mas adelante para q los agregues… ;)

  22. 22 Langsuyar Deugenberg

    Nel , no sirve esta madre…jajaja

  23. 23 Wazu

    Esta padre el tutorial, voy a probarlo con Eclipse, que por cierto es GRATUITO en su versión original y aunque tiene otro modo de configurar las cosas es igual que Netbeans, además carga más rápido que el Netbeans :P

Leave a Reply