ventajas tutorial servlet prácticos programar ejemplos ejemplo desventajas java jsp servlets

java - tutorial - servlet ventajas y desventajas



Diferencia entre getAttribute() y getParameter() (10)

- getParameter () :

<html> <body> <form name="testForm" method="post" action="testJSP.jsp"> <input type="text" name="testParam" value="ClientParam"> <input type="submit"> </form> </body> </html> <html> <body> <% String sValue = request.getParameter("testParam"); %> <%= sValue %> </body> </html>

request.getParameter("testParam") obtendrá el valor de la forma publicada del cuadro de entrada llamado "testParam" que es "param del cliente". Luego lo imprimirá, por lo que debería ver "Parámetro 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 (): request.getAttribute() , todo esto se hace del lado del servidor. USTED agrega el atributo a la solicitud y USTED envía la solicitud a otro recurso, el cliente no tiene conocimiento de esto. Por lo tanto, todo el código que maneja esto normalmente estaría en servlets.getAttribute, siempre devolverá el objeto.

¿Cuál es la diferencia entre los getAttribute() y getParameter() dentro de la clase HttpServletRequest ?


En general, un parámetro es un valor de cadena que se conoce comúnmente por ser enviado desde el cliente al servidor (por ejemplo, una publicación de formulario) y recuperado de la solicitud del servlet . La excepción frustrante a esto son los parámetros iniciales de ServletContext, que son parámetros de cadena que están configurados en web.xml y existen en el servidor.

Un atributo es una variable de servidor que existe dentro de un ámbito específico, es decir:

  • application , disponible para toda la vida de la aplicación.
  • session , disponible para la vida de la sesión.
  • request , solo disponible durante la vida de la solicitud.
  • page (solo JSP), disponible solo para la página actual de JSP

Es crucial saber que los atributos no son parámetros .

El tipo de retorno para los atributos es un Objeto , mientras que el tipo de retorno para un parámetro es una Cadena . Al llamar al getAttribute(String name) , tenga en cuenta que los atributos deben ser convertidos.

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 en la respuesta de @ Bozho, como información adicional que puede ser útil para otras personas.


La diferencia básica entre getAttribute () y getParameter () es el tipo de retorno.

java.lang.Object getAttribute(java.lang.String name) java.lang.String getParameter(java.lang.String name)


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). Por lo tanto, antes de reenviar la solicitud, puede establecer un atributo que estará disponible para el siguiente recurso.


Otro caso cuando debería usar .getParameter() es cuando reenvía con parámetros en jsp:

<jsp:forward page="destination.jsp"> <jsp:param name="userName" value="hamid"/> </jsp:forward>

En destination.jsp , puede acceder a userName esta manera:

request.getParameter("userName")


de http://www.coderanch.com/t/361868/Servlets/java/request-getParameter-request-getAttribute

Un "parámetro" es un par de nombre / valor enviado desde el cliente al servidor, por lo general, desde un formulario HTML. Los parámetros solo pueden tener valores de cadena. A veces (p. Ej., Utilizando una solicitud GET) verá estos códigos codificados directamente en la URL (después de?, Cada uno en el formulario 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 que se almacena en los atributos con alcance se transmite fuera del servidor a menos que lo haga explícitamente. Los atributos tienen nombres de cadena, pero almacenan valores de objetos. Tenga en cuenta que los atributos son específicos de Java (almacenan objetos de Java), mientras que los parámetros son independientes de la plataforma (solo son cadenas con formato compuestas de bytes genéricos).

Hay cuatro ámbitos de atributos en total: "página" (solo para archivos JSP y de etiquetas), "solicitud" (limitado a la solicitud del cliente actual, destruido después de que se complete la solicitud), "sesión" (almacenado en la sesión del cliente, invalidado) una vez finalizada la sesión), "aplicación" (existe para que todos los componentes accedan durante toda la vida útil implementada de su aplicación).

La conclusión es: use los parámetros cuando obtenga datos del cliente, use los atributos del ámbito cuando almacene objetos en el servidor para que su aplicación los use internamente.


getParameter : se usa para obtener la información que necesita de la página HTML del cliente

getAttribute : se usa para obtener los parámetros establecidos previamente en otra o en la misma página JSP o Servlet.

Básicamente, si está reenviando o simplemente va de un jsp / servlet a otro, no hay manera de tener la información que desea a menos que elija ponerlos en un Objeto y usar el atributo-conjunto para almacenar en una variable de Sesión.

Usando getAttribute, puedes recuperar la variable Session.


request.getParameter ()

Utilizamos request.getParameter() para extraer los parámetros de solicitud (es decir, los datos enviados mediante la publicación de un formulario html). El request.getParameter() siempre devuelve String valor de la String y los datos provienen del cliente.

request.getAttribute ()

Usamos request.getAttribute() para obtener un objeto agregado al alcance de la solicitud en el lado del servidor, es decir, utilizando request.setAttribute() . Puede agregar cualquier tipo de objeto que desee aquí, Strings , objetos personalizados, de hecho, cualquier objeto. Usted agrega el atributo a la solicitud y reenvía la solicitud a otro recurso, el cliente no lo sabe. Por lo tanto, todo el código que maneja esto sería típicamente en JSP / servlets Puede usar request.setAttribute() para agregar información adicional y reenviar / redirigir la solicitud actual a otro recurso.

Por ejemplo, considere acerca de first.jsp,

//First Page : first.jsp <%@ page import="java.util.*" import="java.io.*"%> <% request.setAttribute("PAGE", "first.jsp");%> <jsp:forward page="/second.jsp"/>

y second.jsp:

<%@ page import="java.util.*" import="java.io.*"%> From Which Page : <%=request.getAttribute("PAGE")%><br> Data From Client : <%=request.getParameter("CLIENT")%>

Desde su navegador, ejecute first.jsp? CLIENT = usted y la salida en su navegador es

From Which Page : *first.jsp* Data From Client : 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. En ambos casos, se da un nombre para poder buscar y extraer su valor (ya sea una cadena o un java).


  • getParameter() devuelve los parámetros de solicitud http. Los pasados ​​del cliente al servidor. Por ejemplo, http://example.com/servlet?parameter=1 . Solo se puede devolver String

  • getAttribute() es solo para uso del lado del servidor; usted 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. Puede usarse para cualquier objeto, no solo para cadenas.