atributo es sólo para http petición que ayuda a los servlets trabajan juntos
bitfishxyz
Respuestas:
328
getParameter()devuelve parámetros de solicitud http. Los pasados del cliente al servidor. Por ejemplo http://example.com/servlet?parameter=1. Solo puede volverString
getAttribute()es solo para uso del lado del servidor: completa la solicitud con atributos que puede usar dentro de la misma solicitud. Por ejemplo, establece un atributo en un servlet y lo lee desde un JSP. Se puede usar para cualquier objeto, no solo cadena.
Supongo que cuando usas algo como ${attrName}en una página jsp, ¿esos son los atributos que configuras request.getSession().setAttribute()?
ha9u63ar
Dado que los atributos de solicitud se almacenan en el lado del servidor, ¿puedo establecer el atributo de solicitud para una solicitud entre servidores posterior a la redirección-obtención? Quiero enviar información de un servidor a otro servidor en JSF a través de un atributo en la solicitud de redireccionamiento. Puedo enviar a través de una solicitud POST a partir de ahora.
user2918640
En este caso, "Parámetro" parece ser sinónimo de "cadena de consulta"
BTRUE
getAttribute()no es solo para uso del lado del servidor: puede obtener los datos de atributos en el front-end, en páginas jsp, por ejemplo, y mostrarlos
analizador
49
Generalmente, un parámetro es un valor de cadena que se conoce más comúnmente por ser enviado desde el cliente al servidor (por ejemplo, una publicación de formulario) y recuperado de la solicitud de servlet . La excepción frustrante a esto son los parámetros iniciales de ServletContext, que son parámetros de cadena configurados en web.xml y que existen en el servidor.
Un atributo es una variable de servidor que existe dentro de un alcance especificado, es decir:
application, disponible para toda la vida de la aplicación
session, disponible para toda la vida de la sesión
request, solo disponible durante la vigencia de la solicitud
page (Solo JSP), disponible solo para la página JSP actual
"Generalmente, un parámetro es un valor de cadena" Aparte de las cadenas, ¿qué podríamos estar enviando?
Miel
^ Objetos como en el caso de request.setAttribute
Arijit
37
request.getParameter ()
Utilizamos request.getParameter()para extraer parámetros de solicitud (es decir, datos enviados mediante la publicación de un formulario html). El valor request.getParameter()siempre devuelve Stringy los datos provienen del cliente.
request.getAttribute ()
Usamos request.getAttribute()para agregar un objeto al alcance de la solicitud en el lado del servidor, es decir, usar request.setAttribute(). Puede agregar cualquier tipo de objeto que desee aquí, StringsObjetos personalizados, de hecho cualquier objeto. Agregue el atributo a la solicitud y reenvíe la solicitud a otro recurso, el cliente no lo sabe. Entonces, todo el código que maneja esto normalmente estaría en JSP / servlets. Puede usar request.setAttribute()para agregar información adicional y reenviar / redirigir la solicitud actual a otro recurso.
Desde su navegador, ejecute first.jsp? CLIENT = you y la salida en su navegador es
FromWhichPage:*first.jsp*DataFromClient: you
La diferencia básica entre getAttribute()y getParameter()es que el primer método extrae un objeto Java (serializado) y el otro proporciona un valor de cadena. Para ambos casos, se da un nombre para que su valor (ya sea una cadena o un Java Bean) se pueda buscar y extraer.
Este fue un gran ejemplo. Esta debería ser la respuesta aceptada. La respuesta aceptada es correcta, pero para los recién llegados, un ejemplo lo aclaró todo. Gracias.
CapturedTree
26
Es crucial saber que los atributos no son parámetros .
El tipo de retorno para atributos es un Objeto , mientras que el tipo de retorno para un parámetro es una Cadena . Al llamar al getAttribute(String name)método, tenga en cuenta que los atributos deben ser emitidos.
Además, no hay atributos específicos de servlet y no hay parámetros de sesión .
Esta publicación está escrita con el propósito de conectarse con la respuesta de @ Bozho, como información adicional que puede ser útil para otras personas.
La diferencia entre getAttribute y getParameter es que getParameter devolverá el valor de un parámetro que se envió mediante un formulario HTML o que se incluyó en una cadena de consulta. getAttribute devuelve un objeto que ha establecido en la solicitud, la única forma en que puede usar esto es junto con un RequestDispatcher. Utiliza un RequestDispatcher para reenviar una solicitud a otro recurso (JSP / Servlet). Entonces, antes de reenviar la solicitud, puede establecer un atributo que estará disponible para el siguiente recurso.
request.getParameter("testParam")obtendrá el valor del formulario publicado del cuadro de entrada llamado "testParam", que es "Parámetros del cliente". Luego lo imprimirá, por lo que debería ver "Parámetros del cliente" en la pantalla. Entonces request.getParameter () recuperará un valor que el cliente ha enviado. Obtendrá el valor en el lado del servidor.
- getAttribute (): todorequest.getAttribute() esto se realiza en el lado del servidor. USTED agrega el atributo a la solicitud y envía la solicitud a otro recurso, el cliente no lo sabe. Entonces, todo el código que maneja esto normalmente estaría en servlets.getAttribute siempre devuelve el objeto.
getParameter - Se utiliza para obtener la información que necesita de la página HTML del cliente
getAttribute - Esto se utiliza para obtener los parámetros establecidos previamente en otra o la misma página JSP o Servlet.
Básicamente, si está reenviando o simplemente va de un jsp / servlet a otro, no hay forma de tener la información que desea a menos que elija colocarlos en un Objeto y usar el atributo set para almacenar en una variable de Sesión.
Con getAttribute, puede recuperar la variable de sesión.
Un "parámetro" es un par de nombre / valor enviado desde el cliente al servidor, generalmente, desde un formulario HTML. Los parámetros solo pueden tener valores de cadena. A veces (p. Ej., Utilizando una solicitud GET), los verá codificados directamente en la URL (después de?, Cada uno en la forma nombre = valor, y cada par separado por un &). Otras veces, se incluyen en el cuerpo de la solicitud, cuando se utilizan métodos como POST.
Un "atributo" es un mecanismo de almacenamiento local del servidor: nada de lo almacenado en atributos con ámbito se transmite fuera del servidor a menos que explícitamente lo haga. Los atributos tienen nombres de cadena, pero almacenan valores de objeto. Tenga en cuenta que los atributos son específicos de Java (almacenan objetos Java), mientras que los parámetros son independientes de la plataforma (solo son cadenas formateadas compuestas de bytes genéricos).
Hay cuatro ámbitos de atributos en total: "página" (solo para JSP y archivos de etiquetas), "solicitud" (limitada a la solicitud del cliente actual, destruida después de completar la solicitud), "sesión" (almacenada en la sesión del cliente, invalidada después de que finalice la sesión), "aplicación" (existe para que todos los componentes tengan acceso durante toda la vida útil desplegada de su aplicación).
La conclusión es: usar parámetros al obtener datos del cliente, usar atributos de ámbito al almacenar objetos en el servidor para uso interno de su aplicación solamente.
Respuestas:
getParameter()
devuelve parámetros de solicitud http. Los pasados del cliente al servidor. Por ejemplohttp://example.com/servlet?parameter=1
. Solo puede volverString
getAttribute()
es solo para uso del lado del servidor: completa la solicitud con atributos que puede usar dentro de la misma solicitud. Por ejemplo, establece un atributo en un servlet y lo lee desde un JSP. Se puede usar para cualquier objeto, no solo cadena.fuente
${attrName}
en una página jsp, ¿esos son los atributos que configurasrequest.getSession().setAttribute()
?getAttribute()
no es solo para uso del lado del servidor: puede obtener los datos de atributos en el front-end, en páginas jsp, por ejemplo, y mostrarlosGeneralmente, un parámetro es un valor de cadena que se conoce más comúnmente por ser enviado desde el cliente al servidor (por ejemplo, una publicación de formulario) y recuperado de la solicitud de servlet . La excepción frustrante a esto son los parámetros iniciales de ServletContext, que son parámetros de cadena configurados en web.xml y que existen en el servidor.
Un atributo es una variable de servidor que existe dentro de un alcance especificado, es decir:
application
, disponible para toda la vida de la aplicaciónsession
, disponible para toda la vida de la sesiónrequest
, solo disponible durante la vigencia de la solicitudpage
(Solo JSP), disponible solo para la página JSP actualfuente
request.getParameter ()
Utilizamos
request.getParameter()
para extraer parámetros de solicitud (es decir, datos enviados mediante la publicación de un formulario html). El valorrequest.getParameter()
siempre devuelveString
y los datos provienen del cliente.request.getAttribute ()
Usamos
request.getAttribute()
para agregar un objeto al alcance de la solicitud en el lado del servidor, es decir, usarrequest.setAttribute()
. Puede agregar cualquier tipo de objeto que desee aquí,Strings
Objetos personalizados, de hecho cualquier objeto. Agregue el atributo a la solicitud y reenvíe la solicitud a otro recurso, el cliente no lo sabe. Entonces, todo el código que maneja esto normalmente estaría en JSP / servlets. Puede usarrequest.setAttribute()
para agregar información adicional y reenviar / redirigir la solicitud actual a otro recurso.Por ejemplo, considere first.jsp,
y second.jsp:
Desde su navegador, ejecute first.jsp? CLIENT = you y la salida en su navegador es
La diferencia básica entre
getAttribute()
ygetParameter()
es que el primer método extrae un objeto Java (serializado) y el otro proporciona un valor de cadena. Para ambos casos, se da un nombre para que su valor (ya sea una cadena o un Java Bean) se pueda buscar y extraer.fuente
Es crucial saber que los atributos no son parámetros .
El tipo de retorno para atributos es un Objeto , mientras que el tipo de retorno para un parámetro es una Cadena . Al llamar al
getAttribute(String name)
método, tenga en cuenta que los atributos deben ser emitidos.Además, no hay atributos específicos de servlet y no hay parámetros de sesión .
Esta publicación está escrita con el propósito de conectarse con la respuesta de @ Bozho, como información adicional que puede ser útil para otras personas.
fuente
La diferencia entre getAttribute y getParameter es que getParameter devolverá el valor de un parámetro que se envió mediante un formulario HTML o que se incluyó en una cadena de consulta. getAttribute devuelve un objeto que ha establecido en la solicitud, la única forma en que puede usar esto es junto con un RequestDispatcher. Utiliza un RequestDispatcher para reenviar una solicitud a otro recurso (JSP / Servlet). Entonces, antes de reenviar la solicitud, puede establecer un atributo que estará disponible para el siguiente recurso.
fuente
- getParameter () :
request.getParameter("testParam")
obtendrá el valor del formulario publicado del cuadro de entrada llamado "testParam", que es "Parámetros del cliente". Luego lo imprimirá, por lo que debería ver "Parámetros del cliente" en la pantalla. Entonces request.getParameter () recuperará un valor que el cliente ha enviado. Obtendrá el valor en el lado del servidor.- getAttribute (): todo
request.getAttribute()
esto se realiza en el lado del servidor. USTED agrega el atributo a la solicitud y envía la solicitud a otro recurso, el cliente no lo sabe. Entonces, todo el código que maneja esto normalmente estaría en servlets.getAttribute siempre devuelve el objeto.fuente
getParameter
- Se utiliza para obtener la información que necesita de la página HTML del clientegetAttribute
- Esto se utiliza para obtener los parámetros establecidos previamente en otra o la misma página JSP o Servlet.Básicamente, si está reenviando o simplemente va de un jsp / servlet a otro, no hay forma de tener la información que desea a menos que elija colocarlos en un Objeto y usar el atributo set para almacenar en una variable de Sesión.
Con getAttribute, puede recuperar la variable de sesión.
fuente
de http://www.coderanch.com/t/361868/Servlets/java/request-getParameter-request-getAttribute
fuente
Otro caso en el que debe usar
.getParameter()
es al reenviar parámetros en jsp:En
destination.jsp
, puedes accederuserName
así:fuente
La diferencia básica entre getAttribute () y getParameter () es el tipo de retorno.
fuente