¿Cómo puedo pasar la variable de servlet a jsp? setAttribute
y getAttribute
no funcionó para mí :-(Pasar variables de servlet a jsp
Respuesta
Se podría establecer todos los valores en el objeto respuesta antes de forwaring la solicitud a la JSP. O usted puede poner sus valores en un bean de sesión y acceder a ella en el JSP
Gracias amigo. Hice lo mismo y funcionó para mí. :-) – Developer
uso
request.setAttribute ("attributeName");.
y luego
getServletContext(). GetRequestDispatcher ("/ file.jsp"). Forward();
A continuación, será accesible en el JSP.
Como nota al margen: en su jsp evite usar el código de Java. Usa JSTL.
Gracias Bozho! No sé mucho sobre JSTL en este momento. Pero definitivamente voy a aprenderlo. – Developer
¿Por qué 'getServletContext()' y no 'request'? – CodyBugstein
Se dejará de funcionar cuando:
te vamos a redirigir la respuesta a una nueva solicitud por
response.sendRedirect("page.jsp")
. El objeto de solicitud recientemente creado ya no contendrá los atributos y no será accesible en el JSP redirigido. Necesita reenviar en lugar de redirigir. P.ej.request.setAttribute("name", "value"); request.getRequestDispatcher("page.jsp").forward(request, response);
Usted está accediendo a la manera incorrecta o el uso de la nombre equivocado. Suponiendo que haya configurado utilizando el nombre
"name"
, entonces usted debería ser capaz de acceder a él en la página remitido JSP de la siguiente manera:${name}
El reenvío después de, por ejemplo, el envío de un formulario se considera una mala práctica; debe utilizar los redireccionamientos reales (301). Luego, debe pasar el estado por sesiones u obtener parámetros. – lukyer
sí respuesta perfecta @BalusC – Binay
@BalusC, ¿qué quiere decir con "debería poder acceder a ella en la página JSP reenviada de la siguiente manera: $ {nombre}" ?? Intenté escribir <% out.println ($ {name});%> y no funcionó. pero <% out.println (request.getAttribute ("name"));%> did. – Pavel
Además de utilizar un atributopara pasar información de una servlet a una página JSP, también se puede pasar un parámetro . Esto se hace simplemente redirigiendo a una URL que especifica la página JSP en cuestión y agregando el mecanismo normal de parámetro-paso a través de la URL.
Un ejemplo.La parte pertinente del código del servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
// processing the request not shown...
//
// here we decide to send the value "bar" in parameter
// "foo" to the JSP page example.jsp:
response.sendRedirect("example.jsp?foo=bar");
}
y la parte pertinente de la página JSP example.jsp
:
<%
String fooParameter = request.getParameter("foo");
if (fooParameter == null)
{
%>
<p>No parameter foo given to this page.</p>
<%
}
else
{
%>
<p>The value of parameter foo is <%= fooParameter.toString() %>.</p>
<%
}
%>
forma simple, que me pareció es decir,
En servlet:
Puede establecer el valor y reenviarlo a JSP como a continuación
req.setAttribute("myname",login);
req.getRequestDispatcher("welcome.jsp").forward(req, resp);
En welcome.jsp puede obtener los valores por
.<%String name = (String)request.getAttribute("myname"); %>
<%= name%>
(o) u puede llamar directamente
<%= request.getAttribute("myname") %>.
Todas las respuestas son válidas, pero esta parece simple .. – Siva
También puede utilizar RequestDispacher y transmitir los datos junto con la página jsp que desea
request.setAttribute("MyData", data);
RequestDispatcher rd = request.getRequestDispatcher("page.jsp");
rd.forward(request, response);
Este es un código de servlet que contiene una variable de cadena a. el valor para a es obtener de una página html con formulario. luego establezca la variable en el objeto de solicitud. luego pásalo a jsp usando los métodos forward
y requestdispatcher
.
String a=req.getParameter("username");
req.setAttribute("name", a);
RequestDispatcher rd=req.getRequestDispatcher("/login.jsp");
rd.forward(req, resp);
en JSP siga estos pasos que se muestran a continuación en el programa
<%String name=(String)request.getAttribute("name");
out.print("your name"+name);%>
- 1. ¿Pasar datos de Java Servlet a JSP?
- 2. Pasar objetos personalizados de servlet a JSP
- 3. JSP excepción servlet
- 4. ¿Cómo jasper el motor jsp, compila JSP a servlet?
- 5. redirigir jsp del servlet RequestDispatcher
- 6. contenedor jsp vs contenedor servlet
- 7. ¿Cómo pasar la variable de un servlet a una página jsp?
- 8. Java (JSP/Servlet): equivalente de getServletContext() desde adentro de .jsp
- 9. Pasar datos del servlet a otro servlet usando RequestDispatcher
- 10. Soporte de idioma MUlti en JSP/Servlet
- 11. comprobación de sesión en servlet y jsp
- 12. Pasar una lista a otro archivo jsp
- 13. cómo pasar el parámetro a jsp: incluir
- 14. HTML/JSP Variables
- 15. Calculadora simple con JSP/Servlet y Ajax
- 16. PHP - pasar variables a clases
- 17. ¿Cómo pasar variables a render_to_string?
- 18. paso int como parámetro de JSP para servlet
- 19. threadlocal variables en un servlet
- 20. Ayuda para obtener la imagen de Servlet a la página JSP
- 21. Pasar variables a una llamada de subproceso
- 22. expresiones de pasar a las etiquetas personalizadas en JSP
- 23. Parámetros de lectura JSP/servlet del archivo de propiedades?
- 24. ¿Cómo puedo acceder a las variables de JavaScript en JSP?
- 25. ¿Cómo paso la información de un servlet a una página JSP
- 26. Java servlet y JSP accediendo al mismo bean de sesión
- 27. Pasar variables a Rails StateMachine gem transitions
- 28. Pasar variables finales a clases anónimas
- 29. jQuery: Pasar variables a: eq() no funciona
- 30. cómo pasar argumentos variables a otro método?
algunos ejemplos de código ayudaría – skaffman