Hei。 POSTメソッドを使用して、JSPからサーブレットに情報を送信しています。 POSTメソッドを使って "+"文字を送信すると、スペース文字で置き換えられる理由を理解できません。例:次の文字列を入力すると: 4 + 5 - >サーブレットは4 5を返します。すべての "+"記号を置き換えます。どうすればこの問題を解決できますか?それ以降は式を評価する必要があるので、実際には "+"文字が表示される必要があります。'+'文字を置き換えるPOSTメソッド
3
A
答えて
3
フォーム変数にURLエンコードが送信されます。 「+」のプラス文字は、スペースのURLエンコーディング(1つ)です。また
参照: AJAX POST and Plus Sign (+) -- How to Encode?
リテラルプラス記号を送信する場合は、いずれかのJavascriptまたはハードコード化された「%2Bの」を通してそれをエンコードURLする必要があります。
1
サーバーに送信する前にデータをURLEncode
にする必要があります。サーバーはエンコードされていないデータをデコードしようとしています。その結果、+
がスペースにデコードされます。
1
W3 document on HTTP form submissionで説明されているように、サーブレットは明らかにデータがURLエンコードで到着することを期待しています。 POSTのコンテンツタイプを変更するか、送信しているデータを(よりうまく)エンコードする必要があります。 "+"記号を "%2B"としてエンコードすることができます。
1
URLをエンコードする場合、+
文字はスペースを示します。あなたはURLでこの文字を使用する必要がある場合、あなたはこのようにそれをエスケープする必要があります:
4+5
は、「+」
4%2B5
関連する問題
- 1. のjava - メソッドが置き換える(文字、文字が)型スキャナ
- 2. 文字の置き換え
- 3. ベクトルに格納された文字列を文字に置き換えて文字を置き換えるC++
- 4. 特殊文字を置き換える
- 5. 文字列の値を拡張メソッドに置き換えます
- 6. 置き換える文字列
- 7. .NETで機能を置き換える使用せず、文字列内の文字を置き換える
- 8. Java文字を文字に置き換える
- 9. regexの文字を他の文字に置き換えるPHP
- 10. 文字列内の文字を置き換える方法
- 11. 文字列を部分文字列に置き換える
- 12. 文字列内の文字を置き換える?
- 13. 文字をユニコード文字に置き換える
- 14. tr:1文字を2文字に置き換える
- 15. 文字をアンドロイドの別の文字で置き換える?
- 16. 文字列置換なしの文字置換replace()メソッド
- 17. pandas:置換文字列がターゲット部分文字列を置き換えない
- 18. 文字列の置き換え
- 19. 文字列に置き換え()/(削除)
- 20. XSLは(文字の置き換え)
- 21. python-docx - 文字の置き換え
- 22. 文字列内である文字を別の文字に置き換えたり、逆の文字を文字列に置き換えたりします。
- 23. 文字列の置き換え前後の文字列の置換
- 24. 文字の置換え:ブレークライン
- 25. メソッドの置き換え
- 26. 文字列(文字と数字)の置き換え方法
- 27. XSLT - 文字列内の文字数を置き換え
- 28. 文字を制御文字に置き換えます。
- 29. VBA - 文字列内の文字を置き換えます。
- 30. 文字列に特殊文字を置き換えます。
になり、特殊な文字です。 URLでは、 "%2B"に置き換えてエンコードする必要があります。特別な文字の置き換えのリストは次のとおりです。http://www.blooberry.com/indexdot/html/topics/urlencoding.htm –
@BenoitCourtineデータは、URLの一部ではなく、POST経由で送信されています。しかし、ポストはコンテンツタイプがapplication/x-www-form-urlencodedで送信される可能性が最も高いため、基本的な点は依然として有効です。 –