Was ist der Unterschied zwischen getAttribute()
und getParameter()
Methoden darin HttpServletRequest
Klasse?
Unterschied zwischen getAttribute() und getParameter()
priya
Bozo
-
getParameter()
gibt HTTP-Anforderungsparameter zurück. Diese werden vom Client an den Server weitergegeben. Zum Beispielhttp://example.com/servlet?parameter=1
. Kann nur zurückString
-
getAttribute()
ist nur für die serverseitige Verwendung bestimmt – Sie füllen die Anfrage mit Attributen, die Sie innerhalb derselben Anfrage verwenden können. Zum Beispiel – Sie setzen ein Attribut in einem Servlet und lesen es von einer JSP. Kann für jedes Objekt verwendet werden, nicht nur für Strings.
-
Ich nehme an, wenn Sie so etwas wie verwenden
${attrName}
Auf einer JSP-Seite sind dies die Attribute, die Sie mit festlegenrequest.getSession().setAttribute()
?– ha9u63ar
29. April 2015 um 14:56 Uhr
-
Da Anforderungsattribute serverseitig gespeichert werden, kann ich Anforderungsattribute für eine Post-Redirect-Get-Anforderung zwischen Servern festlegen? Ich möchte Informationen von einem Server zu einem anderen Server in JSF über ein Attribut in einer Umleitungsanforderung senden. Ich kann ab sofort über eine POST-Anfrage senden.
– Benutzer2918640
11. März 2016 um 5:29 Uhr
-
In diesem Fall scheint “Parameter” gleichbedeutend mit “Abfragezeichenfolge” zu sein.
– BWAHR
30. Januar 2018 um 22:22 Uhr
krock
Im Allgemeinen ist ein Parameter ein Zeichenfolgenwert, der am häufigsten dafür bekannt ist, dass er vom Client an den Server gesendet (z. B. ein Formularbeitrag) und vom Server abgerufen wird Servlet-Anfrage. Die frustrierende Ausnahme davon ist ServletContext-Anfangsparameter Dies sind Zeichenfolgenparameter, die in web.xml konfiguriert und auf dem Server vorhanden sind.
Ein Attribut ist eine Servervariable, die innerhalb eines bestimmten Bereichs existiert, dh:
application
verfügbar für die gesamte Lebensdauer der Anwendungsession
verfügbar für die Dauer der Sitzungrequest
nur für die Dauer der Anforderung verfügbarpage
(nur JSP), nur für die aktuelle JSP-Seite verfügbar
-
“Im Allgemeinen ist ein Parameter ein Zeichenfolgenwert” Anders als Saiten Was könnten wir senden?
– mfaani
8. November 2016 um 16:31 Uhr
-
^Objekte wie im Fall von request.setAttribute
– Arijit
28. September 2017 um 6:31 Uhr
AVI
request.getParameter()
Wir gebrauchen request.getParameter()
zum Extrahieren von Anforderungsparametern (dh Daten, die durch das Versenden eines HTML-Formulars gesendet werden). Die request.getParameter()
kehrt immer zurück String
Wert und die Daten kommen vom Client.
request.getAttribute()
Wir gebrauchen request.getAttribute()
um ein Objekt zum Anforderungsbereich auf der Serverseite hinzuzufügen, dh mit request.setAttribute()
. Sie können hier jede Art von Objekt hinzufügen, die Ihnen gefällt, Strings
, Benutzerdefinierte Objekte, in der Tat jedes Objekt. Sie fügen das Attribut der Anfrage hinzu und leiten die Anfrage an eine andere Ressource weiter, der Client weiß nichts davon. Der gesamte Code, der dies handhabt, befindet sich also normalerweise in JSP/Servlets. Sie können verwenden request.setAttribute()
zusätzliche Informationen hinzuzufügen und die aktuelle Anfrage an eine andere Ressource weiterzuleiten/umzuleiten.
Betrachten Sie zum Beispiel first.jsp,
//First Page : first.jsp
<%@ page import="java.util.*" import="java.io.*"%>
<% request.setAttribute("PAGE", "first.jsp");%>
<jsp:forward page="/second.jsp"/>
und second.jsp:
<%@ page import="java.util.*" import="java.io.*"%>
From Which Page : <%=request.getAttribute("PAGE")%><br>
Data From Client : <%=request.getParameter("CLIENT")%>
Führen Sie in Ihrem Browser aus first.jsp?CLIENT=Sie und die Ausgabe in Ihrem Browser ist
From Which Page : *first.jsp*
Data From Client : you
Der grundlegende Unterschied zw getAttribute()
und getParameter()
besteht darin, dass die erste Methode ein (serialisiertes) Java-Objekt extrahiert und die andere einen String-Wert bereitstellt. Für beide Fälle wird ein Name angegeben, damit sein Wert (sei es ein String oder eine Java-Bean) nachgeschlagen und extrahiert werden kann.
-
Dies war ein großartiges Beispiel. Dies sollte die akzeptierte Antwort sein. Die akzeptierte Antwort ist richtig, aber für Neueinsteiger hat ein Beispiel alles verdeutlicht. Danke.
– Benutzer5228393
26. Februar 2017 um 3:57 Uhr
-
Gute Antwort. Vielleicht lohnt es sich hinzuzufügen, dass der Umfang der Attribute ins Spiel kommt, wenn Sie die Serverseite der Anfrage eines Clients abfangen und einige zusätzliche Informationen an die Anfrage anhängen.
– Nabster
19. Mai 2021 um 18:43 Uhr
Es ist entscheidend, das zu wissen Attribute sind nicht Parameter.
Der Rückgabetyp für Attribute ist an Objektwährend der Rückgabetyp für einen Parameter a ist Schnur. Beim Anrufen der getAttribute(String name)
-Methode beachten, dass die Attribute gecastet werden müssen.
Außerdem gibt es keine servletspezifischen Attributeund es gibt keine Sitzungsparameter.
Dieser Beitrag wurde mit dem Zweck geschrieben, auf die Antwort von @Bozho als zusätzliche Informationen zuzugreifen, die für andere Personen nützlich sein können.
Abhi
Der Unterschied zwischen getAttribute und getParameter besteht darin, dass getParameter den Wert eines Parameters zurückgibt, der von einem HTML-Formular übermittelt oder in einer Abfragezeichenfolge enthalten war. getAttribute gibt ein Objekt zurück, das Sie in der Anfrage festgelegt haben. Sie können dies nur in Verbindung mit einem RequestDispatcher verwenden. Sie verwenden einen RequestDispatcher, um eine Anfrage an eine andere Ressource (JSP / Servlet) weiterzuleiten. Bevor Sie also die Anfrage weiterleiten, können Sie ein Attribut setzen, das der nächsten Ressource zur Verfügung steht.
Nenad Bulatovic
–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")
erhält den Wert aus dem geposteten Formular des Eingabefelds mit dem Namen “testParam”, das “Client param” ist. Es wird es dann ausdrucken, also sollten Sie “Client Param” auf dem Bildschirm sehen. Request.getParameter() ruft also einen Wert ab, den der Client übermittelt hat. Sie erhalten den Wert auf der Serverseite.
–getAttribute() :
request.getAttribute()
, das ist alles serverseitig erledigt. SIE fügen das Attribut der Anfrage hinzu und SIE senden die Anfrage an eine andere Ressource, der Client weiß nichts davon. Der gesamte Code, der dies handhabt, befindet sich normalerweise in servlets.getAttribute, das immer ein Objekt zurückgibt.
rahul pasricha
getParameter
– Wird verwendet, um die benötigten Informationen von der HTML-Seite des Clients zu erhalten
getAttribute
– Dies wird verwendet, um die zuvor in einer anderen oder derselben JSP- oder Servlet-Seite festgelegten Parameter abzurufen.
Wenn Sie von einem JSP/Servlet zu einem anderen weiterleiten oder einfach nur dorthin wechseln, gibt es keine Möglichkeit, die gewünschten Informationen zu erhalten, es sei denn, Sie legen sie in einem Objekt ab und verwenden das set-Attribut zum Speichern in einer Session-Variablen.
Mit getAttribute können Sie die Session-Variable abrufen.
In welcher Klasse/Paket/API? Haben Sie versucht, die JavaDocs für die relevanten Methoden zu lesen?
– Andrew Thompson
9. März 2011 um 9:49 Uhr
Verwandte: Wie funktionieren Servlets? Anwendungs-/Sitzungs-/Anfragebereiche?
– BalusC
5. März 2012 um 18:13 Uhr
-Attribut ist nur für HTTP-Anforderungen, die Servlets bei der Zusammenarbeit unterstützen
– Bytefisch
16. Mai 2019 um 12:17 Uhr