Wie das Attribut-Feld eines HttpServletRequest-Karten zu einem rohen HTTP-Anforderung?
In Java das Attribut-Feld eines HttpServletRequest-Objekts können abgerufen werden, mit der getAttribute-Methode:
String myAttribute = request.getAttribute("[parameter name]");
Wo die HttpServletRequest-Attribut werden die Daten in einer rohen HTTP-Anforderung? Ist es in den Körper der Anfrage?
Zum Beispiel, ich bin versuchen, um eine raw-GET-HTTP-request gesendet wird zu meinem servlet mit einigen client-Programm. Mein servlet.doGet () - Methode wäre so etwas wie dieses:
public void doGet(HttpServletRequest request, HttpServletResponse response)
{
String myAttribute = request.getAttribute("my.username");
...
}
Wo sollte ich die 'mein.username' Daten in die raw-HTTP-Anfrage, so dass die "myAttribute" String erhält den Wert "John Doe" nach der Namensnennung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen @gid Antwort, die Attribute sind nicht in irgendeiner Weise in den HTTP-request für die übertragung über den Draht. Sie werden erstellt (durch Ihren code), wenn die Bearbeitung der Anfrage. Eine sehr häufige Verwendung ist es, einen server konfiguriert (aka erstellen) einige Attribute und dann Weiterleitung auf eine JSP, die den Einsatz dieser Attribute. Das ist eine HTTP-Anforderung kommt und wird an ein Servlet. Das Servlet legt einige Attribute. Zusätzliche server-seitige Verarbeitung beendet ist, schließlich senden Sie die Seite an eine JSP, in denen Attribute verwendet werden. Die Antwort generiert, die in der JSP. Die HTTP-Anfrage und HTTP-Antwort enthalten keine Attribute. Attribute sind 100% rein server-side-information.
Wenn eine einzelne HTTP-Anforderung abgeschlossen ist, werden die Attribute werden für die Speicherbereinigung zur Verfügung (es sei denn, Sie sind permanent in einem anderen Speicherort, wie eine Sitzung). Attribute sind nur im Zusammenhang mit einem einzigen request-Objekt.
Nur klar zu sein, wie ich denke, dass @Jon ' s Antwort nicht ganz klar. Die Werte für getAttribute und setAttribute auf HttpServletRequest nicht vorhanden sind, was tatsächlich über die Leitung gesendet, Sie sind der server-Seite nur.
Ich denke, was er wirklich Fragen, ist "wie bekomme ich die Parameter in mein Programm", keine Attribute. Wenn das ist die Frage, dann senden Sie die Parameter im GET-Anforderung, die als Teil der URL (nach dem Fragezeichen, http://myhost.com/myapp?name=joe&Alter=26) dann abzurufen, mittels Anfrage.getParameter("name") und Anfrage.getParameter("Alter"), oder was auch immer Sie brauchen.