4

リクエストパラメータはのようなものdecrypt?param=5FHjiSJ6NOTmi7/+2tnnkQ==です。

サーブレットで、パラメーターを出力しようとすると、 が表示されString param = request.getParameter("param");ます5FHjiSJ6NOTmi7/ 2tnnkQ==。文字+をスペースに変換します。元のパラメーターを保持するにはどうすればよいですか、またはキャラクターを適切に処理するにはどうすればよいですか+

また、他にどのような文字を処理すればよいですか?

4

4 に答える 4

7

あなたには2つの選択肢があります

パラメータを URL エンコードする

URL の生成を制御できる場合は、これを選択する必要があります。そうでなければ...

パラメータを手動で取得する

URL の生成方法 (上記) を変更できない場合は、生の URL を手動で取得できます。 特定のメソッドは、パラメータをデコードします。 getParameterその一つです。一方、getQueryStringString はデコードしません。パラメータが少ない場合は、自分で値を解析するのは難しくありません。

request.getQueryString();
//?param=5FHjiSJ6NOTmi7/+2tnnkQ==
于 2013-10-10T22:05:13.047 に答える
2

URL で「+」文字を使用する場合は、生成時にエンコードする必要があります。'+' の正しいエンコーディングは %2b です

于 2013-10-10T20:39:30.713 に答える
0

質問は何年も前のものですが、私の場合に問題をどのように修正したかを書き留めておきたいと思います。ファイルへのダウンロードリンクは、GWT ページで作成されます。

com.google.gwt.http.client.URL.encode(finalurl)

URL のエンコードに使用されます。問題は、私たちの顧客がファイル名に持っていた「+」記号がエンコード/エスケープされていなかったことです。したがって、URL.encode(finalurl) を削除し、URL の各パラメーターを次のようにエンコードする必要がありました。

URL.encodePathSegment(fileName)

私の質問がGWTにバインドされていることは知っていますが、 URLEncoder.encode(string, encoding) もパラメーターにのみ適用する必要があるようです。

于 2016-09-23T14:01:01.793 に答える