Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2012, 02:11
Avatar de teto100
teto100
 
Fecha de Ingreso: mayo-2012
Mensajes: 7
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Comunicacion entre Jsp y Servlet?

Gracias de Antemano por tomarse la molestia de lerr.......


Tengo 1 jsp con un boton (Index.jsp), que mediante el method="Post" lo manda al
servlet Listar.java
Código java:
Ver original
  1. <%@page contentType="text/html" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4.     <head>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6.         <title>JSP Page</title>
  7.     </head>
  8.     <body>
  9.         <form name="produ" action="<%=request.getContextPath()%>/Listar" method="post">
  10.                  
  11.             <input type="submit" name="btnEnviar" value="VER">
  12.         </form>
  13.     </body>
  14. </html>


Aquí el Método consulta que retorna un objeto de la clase Vector
llamado "reg". (donde esta toda la consulta sql)
(EL QUE CREA LA CONEXION Y RECORRE LA TABLA)

Método "consulta" de la clase Sql

Código Java:
Ver original
  1. // Ejecuta Select simple
  2.     static public Vector consulta(String sql) {
  3.         Vector regs = new Vector();
  4.        
  5.         try {
  6.             Conexion        db = new Conexion();
  7.             Connection      cn = db.getConnection();
  8.            
  9.             if (cn == null) {
  10.                 regs = null;
  11.             } else {
  12.                 Statement       st = cn.createStatement();
  13.                 ResultSet       rs = st.executeQuery(sql);
  14.                 ResultSetMetaData   rm = rs.getMetaData();
  15.                 int         numCols = rm.getColumnCount();
  16.                
  17.                 // Toma los títulos de las columnas
  18.                 String[] titCols= new String[numCols];
  19.                 for(int i=0; i<numCols; ++i)
  20.                     titCols[i]= rm.getColumnName(i+1);
  21.                
  22.                 // la fila 0 del vector lleva los títulos de las columnas
  23.                 regs.add(titCols);
  24.                
  25.                 // toma las filas de la consulta
  26.                 while(rs.next()) {
  27.                     String[] reg= new String[numCols];
  28.                    
  29.                     for(int i=0; i<numCols; i++) {
  30.                         reg[i] = rs.getString(i + 1);
  31.                     }
  32.                    
  33.                     regs.add(reg);
  34.                 }
  35.                
  36.                 rs.close();
  37.                 st.close();
  38.                 cn.close();
  39.             }
  40.            
  41.         } catch(SQLException e) {
  42.             regs= null;
  43.         } catch(Exception e) {
  44.             regs= null;
  45.         }
  46.        
  47.         return regs;
  48.     }

Aquí el Servlet Listar.java(Método doPost) , que iguala el resultado del metodo consulta de la clase Sql con un objeto de la clase Vector.


Código Java:
Ver original
  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import java.util.Vector;
  8. import javax.servlet.RequestDispatcher;
  9.  
  10.  
  11.  
  12. public class Listar extends HttpServlet {
  13.    
  14.      
  15.     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  16.             throws ServletException, IOException {
  17.         response.setContentType("text/html;charset=UTF-8");
  18.         PrintWriter out = response.getWriter();
  19.     }
  20.  
  21.     @Override
  22.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  23.             throws ServletException, IOException {
  24.         processRequest(request, response);
  25.     }
  26.  
  27.     @Override
  28.    
  29.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  30.             throws ServletException, IOException {
  31.         processRequest(request, response);
  32.         response.setContentType("text/html;charset=UTF-8");
  33.         PrintWriter out = response.getWriter();
  34.      
  35.         try {
  36.             String sql="select * from Producto";
  37.             Vector llenar = new Vector();
  38.            
  39.             llenar = Sql.consulta(sql);
  40.             System.out.println(llenar);
  41.        
  42.             RequestDispatcher rd = null;
  43.             request.setAttribute("Miprodu", llenar);
  44.             rd = request.getRequestDispatcher("Productos.jsp");
  45.             rd.forward(request, response);
  46.              
  47.         } catch (Exception ex) {
  48.             System.out.println("el error es :" + ex);
  49.         }
  50.        
  51.     }
  52.    
  53.     @Override
  54.     public String getServletInfo() {
  55.         return "Short description";
  56.     }// </editor-fold>
  57. }

Cita:
String sql="select * from Producto";
Vector llenar = new Vector();

llenar = Sql.consulta(sql);

Ya tengo en el Objeto "llenar" el resultado de mi consulta pero
Como hago para mandar este objeto de la clase vector a un jsp (Productos.jsp)?
yo puse:


Cita:
RequestDispatcher rd = null;
request.setAttribute("Miprodu", llenar);
rd = request.getRequestDispatcher("Productos.jsp");
rd.forward(request, response);
Pero no me deja crear un objeto de la clase vector en el jsp

Código java:
Ver original
  1. <%@page import="java.util.Vector"%>
  2. <%@page contentType="text/html" pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5.     <head>
  6.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7.         <title>JSP Page</title>
  8.     </head>
  9.     <body bgcolor="e0e0f8">
  10.         <form value="Miprodu">
  11.             <textarea>
  12.                 <%
  13.                     Vector v = new Vector();
  14.  
  15.                    v = request.getParameter(llenado);
  16.                 %>
  17.             </textarea>
  18.             <a href = "index.jsp"> << REGRESAR </a>
  19.         </form>
  20.     </body>
  21. </html>
  22. </body>
  23. </html>


Les agradecería que me ayudaran llevo días con esto...

Última edición por teto100; 14/05/2012 a las 02:22