2016-05-12 6 views
1

私は、パスワードのパラメータ文字列を取得するためにHttpServletRequest.getparameterを使用しているのXMLHttpRequest

"&password=" document.getElementById('password').value 

ような名前のPOSTおよび他のパラメータとフロントエンド(ジャバスクリプト)からxmlHttpRequestを使用してパスワードを送信しようとしてパラメータに特殊文字を扱いますstring pswd = request.getparameter("password");

のようなコードは、私は、ユーザー名やパスワードとともに送られた他のパラメータを読み取ることであれば結果も、私はこれらのパスワードを渡すと、これらのqwe100%のQWE、qwe198%のQWE などのパスワード以外の特殊文字を持っているすべてのパスワードで正常に動作します私n例外[illegalArgumentException] 助けていただければ幸いです。

答えて

1

encodeURIComponentをバックエンドに渡す前にJavaScript側で使用する必要があります。

です:Java側で、あなたがやるべきことを

var pass = encodeURIComponent(document.getElementById('password').value); 

注:

URLDecoder.decode(request.getParameter( "パスワードを"));

EDIT

@BalusCが指摘するように私はJava側に間違っている - これは、Javaの一部を必要としないのJavaScript側で必要なものをすでに行っています。

+1

JavaScript部分は正しくありません。 Javaの部分が間違っています。サーブレットはすでにそれを自動的に行います(さらに、OPが直面した例外はこれを示しています)。それでも明示的にデコードすると、基本的にはダブルデコードして同じ例外が発生します。 – BalusC

+0

編集しました - あなたは正しいです - それを指摘してくれてありがとう。私は自分のコードを調べ、URLDecoderを実行しませんでした。私自身のコードを読むことができないときはかなり悪いです。 – stdunbar

関連する問題