この規則は、URL の照会パラメーター部分にないプラス (「+」) を含む URL にフラグを立てます。 Java コードでは、この規則は java.net.URL コンストラクターをスキャンし、URL を作成するのに使用されているパラメーターを検査します。 この規則は URL 中の正符号を検索しますが、照会パラメーター内は検索しません。 照会パラメーターには、「?」の右側にあるすべてのものが含まれます。 URL 内の文字。
WebSphere Application Server バージョン 5.1 よりも前は、URL をデコードする場合、 照会パラメーターだけではなく、URL 全体をデコードしていました。 これは正しい振る舞いではなかったため、正符号が照会パラメーター内にないときにはこれを特殊文字として処理しないように、Web コンテナーが変更されました。 これによって、アプリケーション回帰が起こり、バージョン 5.1.1.11 では、ユーザーが正符号のデコードの振る舞いを 制御できるように、Web コンテナーのカスタム・プロパティーが追加されました。 このカスタム・プロパティーのデフォルトの振る舞いは、URL のどこにある正符号もデコードするという、以前の振る舞いです。
デコードしてはならない正符号を含む URL がある場合は、この Web コンテナーのカスタム・プロパティー com.ibm.ws.webcontainer.decodeURLPlusSign を false に設定する必要があります。 デフォルトの振る舞いは true です。
Java 規則は URL コンストラクターを検査し、可能であればコンストラクターの仕様、ホスト、およびファイル・パラメーターをチェックして、正符号がないことを確認します。 規則は、同じコンパイル単位で定義されたストリング・リテラルまたは final String 変数を渡すコンストラクターをスキャンします。 仕様、ホスト、またはファイルのパラメーターを検査できる場合は、規則に違反するコンストラクターにだけ、フラグを立てます。
Java 規則も、検査できない変数としてコードされる仕様、ホスト、またはファイル名を持つ URL コンストラクターのインスタンスにフラグを立てます。
例 1.
|
import java.net.URL; URL url = new URL("http://www.domain.com?id=test&name=plus+sign"); } |
例 1 では、正符号が照会パラメーター内にあるため、規則は URL コンストラクターにフラグを立てません。
例2:
|
import java.net.URL; URL url = new URL("http://www.domain.com/plus+path?id=test&name=ok"); } |
例 2 では、URL のパス部分に正符号があるため、規則は URL コンストラクターにフラグを立てます。
追加情報については、java.net.URL Java 資料を参照してください。