como se hace que servelet haga forwars a diferentes JSP, dependiendo de que JSP lo llame?

Daniel
10 de Mayo del 2006
Hola; otra ves muchas gracias por sus ayudas y consejos. :-)
Recien estoy empezando en JSP y servlets, por lo cual mi duda puede parecer muy inocente.
Mi consulta ahora es la siguiente:
- Tengo un servlet que se conecta a la base de datos para realizar cierta consulta, y luego devuelve los valores a una pagina JSP. Mi problema es saber como hacer para que valla a distintas paginas de resultados (JSP) dependiendo de quien la llamo. Estas paginas de resultados son distintas a la que llamo al servlet para realizar la consulta.
A ver si me explico mejor, la cosa es asi:
-Hice un Servlet que realiza consultas, y un Jsp para busquedas, el cual llama al servlet y le pasa los parametros de busqueda a este servlet que luego de realizar el query correspondiente, envia los resultados a otro JSP distinto para que pinte estos datos en una tabla. Esto lo hago de la siguiente manera:

request.setAttribute("crs",crs);
RequestDispatcher dispatcher = getServletContext ().getRequestDispatcher("/MostarDatos.jsp");
dispatcher.forward(request, response);

Pero este servelt, tambien lo quiero reusar para otras paginas JSP que lo necesiten, como por ejemplo una que realiza las modificaciones de cierto cliente, el cual tiene que buscar. Por lo una ves encontrados los datos los tiene que mostrar en una JSP que muestre los datos del cliente que se busca solamente.
Mi pregunta es como hacer para que el servlet sepa a que pagina JSP debe hacer el forward. ¿Hay alguna forma de que el servlet sepa de quien viene la peticion?

Les agradeceria mucho su ayuda.....

Gracias..... ;-)

baranburu
10 de Mayo del 2006
Puedes poner el mismo nombre a todos los botones que realizan llamadas a ese servlet, y en el comienzo del servlet, lee el parámetro botón(nombre de todos los botones) y compara su value con cada uno de los valores que has asignado. Por ejemplo, si hay dos botones que realizan las llamadas (guardar y modificar por ejemplo), debes hacer lo siguiente
if(request.getParameter("boton").equals("guardar")){
//ejecuta las acciones que requiera la opcion guardar
}
if(request.getParameter("boton").equals("modificar")){
//ejecuta las acciones de modificar
}
Respecto a la sentencia de forward, parece ser correcta. La deberás incluir en cada uno de los if pero con distintas URL. Saludos

nepthis
10 de Mayo del 2006
Hola Daniel, hace mucho que posteaste este mensaje, pero tengo un problema que tu sabes solucionar, y ahora la novata soy yo ;-). Podría explicarme cómo la página jsp lee y pinta lo que le pasa el servlet a través del forward? Muchas gracias!