¿Cómo pasar parámetros de un Servlet a un JSP?

Estoy intentando hacer una aplicación web.
Quiero utilizar servlet y jsp, quiero tener el servlet como controlador y jsp como vista.
Pero tengo un problema obtengo del servlet un vector y necesito pasar la información de ese vector a una página jsp para que esta haga las operaciones que yo desee.
Pero me resulta imposible pasar la información he intentado todo, con el useBean me da error de compilación, me podías dar alguna pista porque estoy hecho un lio

1 respuesta

Respuesta
1
La única manera que se me ocurre es que se lo pases por el objeto HttpSession. De todas formas piensa que el servlet procesa Request y genera responses. Si lo que quieres es interactuar con el controller podrías hacer que el controller fuera un JavaBean y lo pudieras utilizar destu tu JSP (view). De esta manera podrás interactuar sin problemas.
No sé si me explico.
No entiendo muy bien eso que dices que el controller sea un JavaBean, podrías explicármelo un poco gracias.No soy novato, pero casi.
Muchas gracias
Goyo
Vamos a ver... Puedes utilizar un servlet como controller, no hay problema... lo que pasa es que el Servlet espera un objeto request (que procesa) y te generará un objeto response. En tu caso, para que la jsp que hace de vista pudiera recibir ese vector que necesitas, debería acceder a ese servlet y preguntarle el valor de ese vector. Esta manera no es aconsejable ya que los servlet son multithread (a no ser que les digas lo contrario) y podrías tener problemas de sincronización. Las alternativas que se me ocurren son dos: o le pasas ese vector utilizando el HttpSession (a mi modo de ver es poco elegante) o utilizas un javabean con un scope de session como controller. De esta manera, ese java bean lo tienes vinculado a tu session (de manera única) y puedes acceder a las variables de tu java bean (siempre que no sean estáticas) de una manera segura.
No sé si esta vez me he explicado mejor... (es comlpicado por escrito!)
Haber lo que tengo yo es un bean clienteBean(cb)con los datos de los clientes. Nombre, domicilio...
Pero necesito tener otro bean que le llamo ListaClienteBean (lcb)que es una clase que extiende a un vector, con lo cual estará formado por todos los clientes que en este momento existan.
Pues bien ahora lo que necesito es que en una página Jsp con un desplegable se recojan los nombres de todos esos clientes para que el usuario pueda elegir.
Todo esto lo hice y funciona utilizando solo servlet, pero para tenerlo más ordenadoquiero hacerlo con jsp.
Pero aquí esta mi problema no se pasar ese ListaClienteBean al JSP para que me lo meta en el desplegable.
Me da un error de compilación:
Generated servlet error:
[javac] Since fork is true, ignoring compiler setting.
[javac] Compiling 1 source file
[javac] Since fork is true, ignoring compiler setting.
[javac] C:\Tomcat 4.1\work\Standalone\localhost\_\pruebaver_jsp.java:51: cannot resolve symbol
[javac] symbol : class ListaClienteBean
[javac] location: class org.apache.jsp.pruebaver_jsp
[javac] ListaClienteBean lcb = null;
[javac] ^
Esto solo es un trozo.
Como ves no lo reconoce y me estoy volviendo loco porque no creo que esto tenga más dificultad y porque no se donde mirar ya.
Si pudieras darme más pista o tu idea de como lo puedo hacer o simplemente un linea de código para mandar o recoger el parámetro, muchas gracias.
Goyo
Si lo que quieres es recibir la lista en la JSP lo puedes hacer así:
1. Primero general lista dentro del servlet.
2. Luego, pásasela al objeto session:
session.setAtribute("ListaCliente",tuLista);
3. ahora , desde tu jsp, puedes hacer lo siguiente para obtener tu lista:
List miListaClientes = (List) session.getAttribute("ListaCliente");
Ahora ya tienes la lista en tu JSP.
Este método no es lo más idóneo (a arquitectura me refiero). Pero te funcionará.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas