Foros del Web » Programación para mayores de 30 ;) » Java »

variable desde un servlet para una jsp

Estas en el tema de variable desde un servlet para una jsp en el foro de Java en Foros del Web. Hola, Tengo una pagina jsp que recibe datos para hacer un registro en una tabla de la base de datos, bien el action del form ...
  #1 (permalink)  
Antiguo 02/12/2004, 17:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 24
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta variable desde un servlet para una jsp

Hola,

Tengo una pagina jsp que recibe datos para hacer un registro en una tabla de la base de datos, bien el action del form llama a un servlet que es quien llama al metodo de una clase que hace la inserción, este metodo me devuelve un String que es el mensaje que se debe mostrar en la pagina jsp del comienzo, como hago para que este mensaje salga en esta primera pagina.

Es mi primer tema en este foro, espero me ayuden y haya sido clara.

Les quedaré muy agradecida

angelajmg
  #2 (permalink)  
Antiguo 02/12/2004, 23:09
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 7 meses
Puntos: 0
Podrias Ser Un Poco Mas Explicita
  #3 (permalink)  
Antiguo 03/12/2004, 07:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 24
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta

OK, HUIV lo que necesito es desde un servlet mandar un string a la pagina que hace el llamado del servlet para que esta lo muestre. Es como un mensaje de respuesta a la operación, podría desde el servlet llamar a un alert() de javascript y en el mensaje del alert enviar el resultado del servlet.

La idea es la siguiente:

Pagina jsp
...
<form name="form" method="post" action="\servlet\respuesta">
<input type="text" name="txt_codigo">
</form>
...

En el servlet tengo esto:
...
Rubro r=new Rubro();
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String msg=r.validarCodigo(req.getParameter("txt_codigo") ;
}

La variable msg quiero mostrarla en un alert o en la pagina jsp para que le informe al usuario el resultado de su operación.

Ahora si? Espero puedan ayudarme

Gracias de antemano

angelajmg
  #4 (permalink)  
Antiguo 03/12/2004, 07:47
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Una vez que el Servlet hace lo que necesita, y dependiendo de como le fue, es decir, si hiciste algun tipo de validacion como si conecto o no a una base de datos, si el login de un usurio fue correcto, etc, etc. Lo normal es que el Servlet relegue luego la responsavilidad de presentacion en una JSP, esto es lo que se llama el Modelo Vista Controlador o MVC, esto lo puedes implementar facilmente usando Struts o JSF (Java Server Face), o bien, haciendolo tu misma de alguna forma. Y una manera de lograrlo por ti misma, es por ejemplo, una vez que haces lo que tienes que hacer en el Servlet, ingresas en la Session el mensaje que luego quieres mostrar, luego con un

Código PHP:
response.sendRedirect("alguna_pagina.jsp"); 
El Servlet devuelve el control a alguna pagina que maneje lo que debe.

En tu caso solo debes poner el mensaje en session y luego enviar el control a la página inicial que mencionaste, luego en esta capturas el valor de la session que ingresaste en el Servlets y lo muestras

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 03/12/2004, 07:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 24
Antigüedad: 19 años, 6 meses
Puntos: 0
Gracias Gonzalo, pero siempre es necesario que se maneje una sesión es que hasta ahora no lo estoy haciendo.

Angela M
  #6 (permalink)  
Antiguo 03/12/2004, 09:35
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Pues es la forma mas sencilla, mas segura y mas recomendada de hacerlo, pues la otra opcion seria el paso por URL del mensaje, pero este siempre se vera en barra de direccion web y esto es poco estetico e inseguro, pues si quieres pasar datos criticos como lo podria ser una targeta de credito o datos como el password de un usuario o cosas asi, esta informacion se veria en la barra de direcciones y todo el mundo podria mirarla. para este metodo solo debes hacer esto

Código PHP:
String mensaje "Este es el mensaje";
response.sendRedirect("alguna_pagina.jsp?mensaje=" mensaje); 
Luego en la JSP recuperas lo que enviaste y lo muestras

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #7 (permalink)  
Antiguo 03/12/2004, 09:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 24
Antigüedad: 19 años, 6 meses
Puntos: 0
De acuerdo

Gracias, voy a implementar la session y bueno espero solucionar el problema, cualquier cosa ya estare comentándote.

Que tengas un buen dia.

Angela M
  #8 (permalink)  
Antiguo 03/12/2004, 11:13
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bogota, Colombia
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Pues tengo entendido que el servidor de aplicaciones siempre asigna sesion a la pagina web, tal vez lo que podrias hacer en el lado del servlet es colocar algo como

Rubro r=new Rubro();
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String msg=r.validarCodigo(req.getParameter("txt_codigo") ;
req.getSession.setAttribute("validacion", msg);
response.sendRedirect("lapaginadedondellamasteelse rvlet");

y en la pagina jsp

<% if( request.getSession.getAttribute("validacion") != null ) {%>
alert('<%=request.getSession.getAttribute("validac ion")%>')
<% request.getSession.removeAttribute("validacion");
}
%>

o sin necesitada de colocar atributo en session y con parametros mandarlo y recuperar en la jsp con request.getAttribute("mensaje")
  #9 (permalink)  
Antiguo 03/12/2004, 11:25
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 11 meses
Puntos: 2
Si no quieres usar la session siempre puedes hacer algo así:

public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String msg=r.validarCodigo(req.getParameter("txt_codigo") ;
request.setAttribute("msg",msg);
getServletConfig().getServletContext().getRequestD ispatcher("pagina.jsp").forward(req, res);
}

y en tu jsp recoger el valor con un simple
<%
String msg=(String) request.getAttribute("msg");
%>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #10 (permalink)  
Antiguo 03/12/2004, 15:56
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Si embrago aun asi, sigue siendo la sesison la forma mas transparente y facil de implementarlo.

Y no se crea el objeto session automaticamente, esto es en las JSP, peor no en los Servlets, sin embargo crealo solo es una linea. asi

Código PHP:
HttpSession session request.getSession(true); 
Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:10.