3

ヘイ。JSPからサーブレットに情報を送信するためにPOSTメソッドを使用しています。POSTメソッドを介して「+」文字を送信すると、スペース文字に置き換えられる理由がわかりません。例:次の文字列を入力すると:4+5->サーブレットは45を返します。すべての「+」記号を置き換えます。どうすればこれを修正できますか?その後、式を評価する必要があるため、「+」文字を表示する必要があります。

4

4 に答える 4

3

フォーム変数はURLエンコードされて送信されます。「+」プラス文字は、スペースの(1つの)URLエンコードです。

参照: AJAX POSTとプラス記号(+)-エンコードする方法は?

リテラルのプラス記号を送信する場合は、Javascriptまたはハードコードされた「%2B」を使用してURLエンコードする必要があります。

于 2012-04-22T18:46:13.567 に答える
1

URLEncodeサーバーに送信する前にデータを保存する必要があります。サーバーはエンコードされていないデータをデコードしようとしています。その結果+、スペースにデコードされます。

于 2012-04-22T18:46:24.017 に答える
1

HTTPフォームの送信に関するW3ドキュメントで説明されているように、サーブレットは明らかにデータがURLエンコードで到着することを期待しています。POSTのコンテンツタイプを変更するか、送信するデータを(より適切に)エンコードする必要があります。「+」記号は「%2B」としてエンコードできます。

于 2012-04-22T18:46:31.913 に答える
1

URLをエンコードする場合、+文字はスペースを示します。この文字をURLで使用する必要がある場合は、次のようにエスケープする必要があります。

4+5

になる

4%2B5
于 2012-04-22T18:47:14.993 に答える