Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Vamos a crear un JSP que maneje ms de un JavaBean y que se llame a l mismo. Adems va
a utilizar el patrn MVC para separar la lgica de la presentacin.
Partiendo de un prototipo inicial, tendremos una pantalla que muestre los departamentos de una
empresa y a partir del departamento seleccionado, se mostrarn solamente los empleados del
departamento seleccionado. El prototipo inicial ser el siguiente:
Entonces partiendo del prototipo anterior, debemos crear un JavaBean para encapsular los datos
de cada departamento y otro JavaBean para encapsular los datos de cada uno de los empleados
que se mostrarn en la tabla.
Crearemos la clase Departamento en un archivo llamado Departamento.java. Este archivo debe
guardarse en jakarta-tomcat-4.1.12\webapps\temas\WEB-INF\classes\temas\paq02
package temas.paq02;
import java.io.Serializable;
public class Departamento implements Serializable
{
private int deptId;
private String deptName;
public void setDeptId(int newDeptId)
{
deptId = newDeptId;
}
public int getDeptId()
{
return deptId;
}
public void setDeptName(String newDeptName)
{
deptName = newDeptName;
}
public String getDeptName()
{
return deptName;
}
}
Ahora crearemos la clase Empleado en un archivo llamado Empleado.java. Este archivo debe
guardarse en jakarta-tomcat-4.1.12\webapps\temas\WEB-INF\classes\temas\paq02
package temas.paq02;
import java.io.Serializable;
public class Empleado implements Serializable
{
private int empId;
private String empFname;
private String empLname;
public void setEmpId(int newEmpId)
{
empId = newEmpId;
}
public int getEmpId()
{
return empId;
}
public void setEmpFname(String newEmpFname)
{
empFname = newEmpFname;
}
public String getEmpFname()
{
return empFname;
}
public void setEmpLname(String newEmpLname)
{
empLname = newEmpLname;
}
public String getEmpLname()
{
return empLname;
}
}
Posteriormente crearemos las clases controller de ambos JavaBeans. Este es el cdigo para el
DepartamentoController.java
package temas.paq02;
import java.sql.*;
import java.util.ArrayList;
public class DepartamentoController
{
public ArrayList getDepartamentos()
{
String query = "SELECT dept_id, dept_name FROM department";
ArrayList arrayListResultado = new ArrayList(0);
Connection con = null;
Statement stm = null;
ResultSet rs = null;
try
{
Class.forName ("com.sybase.jdbc2.jdbc.SybDriver");
con = DriverManager.getConnection
("jdbc:sybase:Tds:localhost:2638/asademo", "dba", "sql");
stm = con.createStatement();
rs = stm.executeQuery( query );
while( rs.next() )
{
Departamento dep = new Departamento();
dep.setDeptId( rs.getInt("dept_id") );
dep.setDeptName( rs.getString("dept_name") );
arrayListResultado.add( dep );
}
}
catch(ClassNotFoundException e)
{
System.out.println("Exception con el driver");
e.printStackTrace();
}
catch(SQLException e)
{
System.out.println("Exception SQL");
e.printStackTrace();
}
finally
{
try
{
if( con != null )
con.close();
}
catch(Exception e)
{
System.out.println("Exception al cerrar la
conexion");
}
finally
{
return arrayListResultado;
}
}
}
}
finally
{
return arrayListResultado;
}
}
}
Ahora compilamos las 4 clases en una sola instruccin, usando el comodn *.java
C:\jakarta-tomcat-4.1.12\webapps\temas\WEB-INF\classes>
javac -d . .\temas\paq02\*.java
Ahora vamos a crear el JSP llamado ConsultaDepartamento.jsp que se va a guardar en
C:\jakarta-tomcat-4.1.12\webapps\temas:
<html>
<head><title>Consulta de empleados por departamento</title>
</head>
<body>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="temas.paq02.Departamento" %>
<jsp:useBean id="depControlador"
class="temas.paq02.DepartamentoController" />
<form name="form1" method="post" action="ConsultaDepartamento.jsp">
<font face="Arial, Helvetica, sans-serif">
<select name="deptId" size="1">
<%
ArrayList arrayListDepartamento =
depControlador.getDepartamentos();
for(int i=0; i<arrayListDepartamento.size(); i++)
{
Departamento dep =
(Departamento)arrayListDepartamento.get(i);
%>
<option value="<%=dep.getDeptId()%>"><%=dep.getDeptName()%></option>
<%
}
%>
</select>
<br>
<input type="submit" name="Submit" value="Consultar empleados">
</font>
</form>
</body>
</html>
Una vez guardado el JSP y levantado el servidor Tomcat, accesamos al JSP directamente (sin
pasar por un HTML) en el URL:
http://localhost:8080/temas/ConsultaDepartamento.jsp