1. Get wird zum Abrufen von Daten vom Server verwendet, während Post zum Übertragen von Daten an den Server verwendet wird.
2. Get fügt die Daten im Formular der URL hinzu, auf die die Aktion zeigt, und verbindet die beiden mit „?“, und jede Variable wird mit „&“ verbunden Zum Verbinden werden die Daten im Formular im Datenkörper des Formulars platziert und gemäß den entsprechenden Variablen und Werten an die URL übergeben, auf die die Aktion verweist.
3. Get ist unsicher, da die Daten während des Übertragungsvorgangs in der angeforderten URL abgelegt werden und viele vorhandene Server, Proxyserver oder Benutzeragenten die angeforderte URL in Protokolldateien aufzeichnen und dann irgendwo ablegen private Informationen, die von Dritten eingesehen werden können. Darüber hinaus können Benutzer die übermittelten Daten auch direkt im Browser sehen und einige interne Systemmeldungen werden dem Benutzer angezeigt. Alle Post-Vorgänge sind für Benutzer unsichtbar.
4. Die von Get übertragene Datenmenge ist gering, hauptsächlich weil sie durch die URL-Länge begrenzt ist, während Post eine große Datenmenge übertragen kann, sodass Sie Post nur beim Hochladen von Dateien verwenden können (natürlich gibt es noch eine andere). Grund, der später erwähnt wird) ).
5. Get beschränkt den Wert des Datensatzes im Formular auf ASCII-Zeichen, während Post den gesamten ISO10646-Zeichensatz unterstützt. Standardmäßig wird die ISO-8859-1-Kodierung verwendet
6. Get ist die Standardmethode von Form.
Der folgende Vergleich ist sehr nützlich:
Ich mache schon seit einiger Zeit Java-Webentwicklung und es gibt ein Problem, das mich immer stört, nämlich die Verstümmelung Grundsätzlich habe ich online nach Lösungen gesucht (es gibt wirklich viele Informationen online), und es gab viele Einführungen, wie man diese Art von verstümmeltem Codeproblem lösen kann, aber nur wenige davon erklärten die Besonderheiten des Problems Nachdem ich einige Artikel gelesen hatte, dachte ich manchmal, ich hätte es verstanden, aber während der Entwicklung erscheint das Problem mit dem verstümmelten Code wie ein Geist und macht den Leuten wirklich Angst. Dieser Artikel ist die Sammlung einiger Erkenntnisse über meinen langjährigen Kampf mit verstümmelten Charakteren. Ich hoffe auch, dass mehr Freunde Hinweise und Ergänzungen geben können.
Das Formular verfügt über zwei Methoden zum Senden von Daten an den Server: zum Abrufen und zum Veröffentlichen.
(1) Übermittlung abrufen
1. Lassen Sie uns zunächst darüber sprechen, wie das Client-(Browser-)Formular die Get-Methode verwendet, um die Daten zu kodieren und an den Server zu übermitteln.
Für die Get-Methode werden die Daten hinter der angeforderten URL als Parameter verkettet, z. B.: http://localhost:8080/servlet?msg=abc
(ein sehr häufiges verstümmeltes Problem). Wenn die URL chinesische oder andere Sonderzeichen enthält, z. B. http://localhost:8080/servlet?msg=Hangzhou, kann es auf der Serverseite leicht zu verstümmelten Zeichen kommen. Der Browser verarbeitet die URL-Kodierung und sendet sie dann an den Server. Der Prozess der URL-Kodierung besteht darin, einen Teil der URL als Zeichen zu verwenden und ihn gemäß einer bestimmten Kodierungsmethode (z. B. utf-8) zu kodieren. gbk usw.) und verwenden Sie dann eine Darstellung durch die dreistellige Zeichenfolge „%xy“, wobei xy die zweistellige hexadezimale Darstellung des Bytes ist. Wovon ich hier spreche, ist möglicherweise nicht klar. Für eine detaillierte Einführung können Sie die Einführung der Klasse java.net.URLEncoder hier lesen. Nachdem wir den Prozess der URL-Codierung verstanden haben, können wir zwei sehr wichtige Probleme erkennen: Erstens handelt es sich bei den Zeichen, die eine URL-Codierung erfordern, im Allgemeinen um Nicht-ASCII-Zeichen, und im Allgemeinen handelt es sich um Texte, die keine englischen Buchstaben sind (z. B.). : Chinesisch, Japanisch usw.) müssen URL-codiert sein, sodass der Server bei URLs mit englischen Buchstaben keine verstümmelten Zeichen erhält. Zweitens werden verstümmelte Zeichen durch chinesische oder Sonderzeichen in der URL verursacht Welche Kodierungsmethode verwendet die URL-Kodierung zum Kodieren von Zeichen? Dies ist eine Frage der Browser, und verschiedene Browser verwenden im Allgemeinen GBK. Sie können auch unterschiedliche Browsereinstellungen verwenden Bei verschiedenen Codierungsmethoden verwenden viele Websites JavaScript, um die chinesischen Zeichen oder Sonderzeichen in der URL zu codieren, und fügen dann die URL zusammen, um die Daten zu übermitteln. Das heißt, die URL-Codierung erfolgt für den Browser. Der Vorteil besteht darin, dass die Website dies kann Vereinheitlichen Sie die Codierungsmethode der von der get-Methode übermittelten Daten. Nachdem die URL-Kodierung abgeschlossen ist, wird die URL nun zu einem Zeichen im ASCII-Bereich, wird dann mithilfe der ISO-8859-1-Kodierung in eine Binärdatei umgewandelt und zusammen mit dem Anforderungsheader gesendet. Was ich hier noch ein paar Worte sagen möchte, ist, dass es für die Get-Methode keine Anforderungsentität gibt und die URL, die die Daten enthält, im Anforderungsheader steht. Der Grund, warum URL-Kodierung verwendet wird, ist meiner Meinung nach: für den Anforderungsheader Am Ende werden die reinen Daten von 101010 ... mit der ISO-8859-1-Codierungsmethode in Binärdatei codiert und über das Internet übertragen. Wenn die Sonderzeichen, die chinesische und andere Zeichen enthalten, direkt in ISO codiert werden -8859-1 gehen die Informationen verloren, daher muss zuerst die URL-Kodierung durchgeführt werden. 2. Wie erhält die Serverseite (Tomcat) die Daten und dekodiert sie? Der erste Schritt besteht darin, die Daten mit ISO-8859-1 zu dekodieren. Für die Get-Methode ruft Tomcat die Daten mithilfe von Anforderungsheaderzeichen im ASCII-Bereich ab. Wenn der Parameter „Warten Sie auf etwas“ enthält Zeichen, dann befindet es sich nach der URL-Codierung immer noch im Status %XY. Lassen Sie uns zunächst über den Prozess der Datenbeschaffung durch Entwickler sprechen. Normalerweise verwendet jeder request.getParameter("name"), um Parameterdaten zu erhalten, die wir im Anforderungsobjekt erhalten, und sie können im Programm während des Dekodierungsprozesses nicht angegeben werden Anfänger sagen, dass Sie request.setCharacterEncoding("Character Set") verwenden können, um die Dekodierungsmethode anzugeben. Eine Erklärung dieser Methode finden Sie in der offiziellen API-Beschreibung Name der im Hauptteil dieser Anfrage verwendeten Zeichenkodierung. Diese Methode muss vor dem Lesen von Anfrageparametern oder dem Lesen von Eingaben mit getReader() aufgerufen werden. Es ist ersichtlich, dass er mit der get-Methode machtlos ist. Welche Codierungsmethode wird also zum Decodieren der Daten verwendet? Der Standardwert ist ISO-8859-1, sodass wir herausfinden können, warum die Get-Anfrage auf der Clientseite verstümmelt ist , UTF-8 oder GBK wird im Allgemeinen zum Codieren der Daten-URL verwendet. Es ist offensichtlich nicht möglich, den ISO-8859-1-URL-Decoder hier im Programm zu verwenden String( request.getParameter("name").getBytes("iso-8859-1"),"Vom Client angegebene URL-Kodierungsmethode")
Stellen Sie den Bytecode wieder her und dekodieren Sie die Daten dann auf die richtige Weise , online Der Artikel ist normalerweise in Tomcat
Xml-Code
1 konfiguriert ="GBK"/>
Dadurch kann Tomcat den angegebenen URL-Decoder verwenden, nachdem er die Daten erhalten hat.
(1) Beitragsübermittlung
1. Client (Browser) Wie Das Formular verwendet die Post-Methode, um die Daten zu verschlüsseln und an den Server zu senden.
Die in der Post-Methode zu übertragenden Daten erfordern ebenfalls eine URL-Codierung. Welche Codierungsmethode wird also verwendet?
Wenn es in der HTML-Datei ein Segment gibt, in dem sich das Formular befindet,
Ich habe festgestellt, dass die oben erwähnte Prämisse von Tomcat darin besteht, dass die Codierungsmethode nicht im Anforderungsheader angegeben ist wird auf diese Weise codiert. Es werden 2 Artikel empfohlen, die Adressen sind Erklären Sie die URL-Kodierung in einfachen Worten:
http://www.cnblogs.com/ yencain/ Articles/1321386.html; Problem mit verstümmelten Zeichen, wenn das Formular Daten mit der Post-Methode übermittelt:
http://wanghuan8086.javaeye. com/blog/173869 Es ist sehr wichtig, Post zu verwenden. Wenn es einen Abschnitt in der HTML-Datei gibt, in dem sich das Formular befindet,
Es wird dringend empfohlen, die Post-Übermittlung zu verwenden