¿Es posible usar request.setAttribute
en una página JSP y luego en HTML Enviar obtener el mismo atributo de solicitud en el Servlet
?Usando request.setAttribute en una página JSP
Respuesta
No. Desafortunadamente, el objeto Request solo está disponible hasta que la página termine de cargarse; una vez que está completo, perderá todos los valores en él a menos que se hayan almacenado en alguna parte.
Si desea persistir atributos a través de peticiones que o bien:
- tienen una entrada oculta en su forma, tal como
<input type="hidden" name="myhiddenvalue" value="<%= request.getParameter("value") %>" />
. Esto estará disponible en el servlet como parámetro de solicitud. - lo puso en la sesión (ver
request.getSession()
- en un JSP está disponible como simplementesession
)
recomiendo el uso de la sesión, ya que es más fácil de manejar.
corrígeme si mal ... Creo solicitud no persisten entre las páginas consecutivas ..
Piense que recorrer de la página 1 -> página 2 -> página 3.
Usted tiene algún valor establecer en el objeto de solicitud usando setAttribute desde la página 1, que recuperas en la página 2 usando getAttribute, luego si intentas configurar algo nuevamente en el mismo objeto de solicitud para recuperarlo en la página 3, falla al darte un valor nulo como "la solicitud que creó el JSP y la solicitud que se genera cuando se envía el JSP son solicitudes completamente diferentes y los atributos colocados en el primero no estarán disponibles en el segundo ".
quiero decir algo como esto en la página 2 falla:
Donde como la misma cosa ha trabajado en el caso de la página 1 como:
así que creo que tendría que proceder con cualquiera de las dos opciones sugeridas por Phill.
La respuesta de Phil Sacre fue correcta; sin embargo, la sesión no debe usarse por el simple hecho de hacerlo. Solo debe usar esto para valores que realmente necesitan para vivir durante el tiempo de vida de la sesión, como un inicio de sesión de usuario. Es común ver a las personas abusar de la sesión y encontrarse con más problemas, especialmente cuando se trata de una colección o cuando los usuarios regresan a una página que visitaron anteriormente solo para descubrir que aún les quedan valores de una visita anterior. Un programa inteligente minimiza el alcance de las variables tanto como sea posible, uno malo usa demasiado la sesión.
creo que phil es la opción de solicitud correcta está disponible hasta la carga de la página. entonces, si queremos enviar valor a otra página, queremos configurarla en la etiqueta oculta o al lado de la sesión si solo necesita el valor solo en otra página y no más que eso, entonces las etiquetas ocultas son la mejor opción si necesita ese valor en más de una página en ese momento, la sesión es la mejor opción que las etiquetas ocultas.
Trate
request.getSession().setAttribute("SUBFAMILY", subFam);
request.getSession().getAttribute("SUBFAMILY");
Si desea que sus solicitudes a persiste intente esto:
ejemplo: en su página JSP o servlet
request.getSession().setAttribute("SUBFAMILY", subFam);
y en cualquier página de recepción usar las siguientes líneas para recuperar su sesión y datos:
SubFamily subFam = (SubFamily)request.getSession().getAttribute("SUBFAMILY");
Puede hacerlo utilizando atributos pageContext, sin embargo:
En el JSP:
<form action="Enter.do">
<button type="SUBMIT" id="btnSubmit" name="btnSubmit">SUBMIT</button>
</form>
<% String s="opportunity";
pageContext.setAttribute("opp", s, PageContext.APPLICATION_SCOPE); %>
en el servlet (vinculado a la "Enter.do" url-pattern):
String s=(String) request.getServletContext().getAttribute("opp");
Hay otros ámbitos además de APPLICATION_SCOPE como SESSION_SCOPE. APPLICATION_SCOPE se usa para los atributos de ServletContext.
- 1. javax.el.PropertyNotFoundException en una página JSP
- 2. Cómo importar constantes en una página JSP
- 3. Codificación de página en JSP
- 4. Spring jsp página no evaluada
- 5. ¿Cómo reenviar la solicitud a otra página JSP al hacer clic en un enlace en una página JSP?
- 6. Codificación UTF-8 en la página JSP
- 7. Visualización de árbol en la página JSP
- 8. spring - diferencia entre request.setAttribute y model.addAttribute?
- 9. ¿Cuál es la diferencia fundamental entre un jsp taglib vs que incluye una página jsp?
- 10. ¿Cómo puedo reutilizar HTML/JSP dentro de una página?
- 11. ¿Por qué configurar una sesión de página JSP = directiva "falsa"?
- 12. RESTeasy y Volver a una página JSP con un modelo
- 13. variable de .jsp a la página html
- 14. Práctica de navegación de página pura JSP?
- 15. JasperReports: Cómo llamar al informe en la página jsp
- 16. Ajax usando https en una página http
- 17. ¿Cómo evitar el uso de scriptlets en mi página JSP?
- 18. ¿Cómo recuperar el nombre de la página actual en JSP?
- 19. visualización del resultado del servlet en la página jsp
- 20. java.lang.OutOfMemoryError (espacio PermGen) y java.lang.ClassNotFoundException en la página jsp
- 21. Cómo llegar valor scriptlet JSP en puntales etiquetar
- 22. JSP ¿Cómo escalar una imagen?
- 23. Struts - Directiva Taglib en una página JSP para .tld proporcionada por Struts
- 24. Definir una clase en un JSP
- 25. Incluye automáticamente un JSP en cada JSP
- 26. Gradle reemplazar texto en JSP usando el filtro
- 27. ¿Cómo servir archivos JSP usando Jetty?
- 28. Cómo codificar uri una cadena en jsp?
- 29. jsp: reenviar en Java sin usar la etiqueta JSP?
- 30. Url absoluta en jsp
Quizás eso no sea desafortunado. Los scriptlets de JSP son una mala práctica. Tenga cuidado al usar la sesión, es más fácil de administrar, pero a veces es "caro" en términos de escalabilidad. –
Bueno, póngalo de esta manera: la sesión es probablemente mejor que cualquier otra cosa que escriba usted mismo :) Si está en un servidor de aplicaciones decente, puede realizar replicaciones, etc., y tiene opciones de almacenamiento (no solo en la memoria). –