Ez a szabály azon plusz- ("+") jelet tartalmazó URL címeket látja el jelzővel, melyek esetén a pluszjel nem az URL lekérdezési paramétereket tartalmazó részében található. A szabály a java.net.URL konstruktorokat keresi a Java kódban, valamint megvizsgálja az URL cím létrehozásához használt paramétereket. A szabály az URL címben igen, a lekérdezési paraméterekben azonban nem keresi a pluszjelet. A lekérdezési paraméterek tartalmaznak mindent a "?" - től jobbra? Karakter az URL címben.
A WebSphere Application Server 5.1 változata előtt az URL címek visszafejtése során nem csupán a lekérdezési paraméterek, hanem a teljes URL cím visszafejtése megtörtént. Ez a viselkedés helytelen volt, a világhálós tároló pedig azóta módosításra került abban a tekintetben, hogy a pluszjelet ne kezelje speciális karakterként, ha az nem a lekérdezési paraméterekben szerepel. Mindez alkalmazásregresszióhoz vezetett, így az 5.1.1.11 változatban a világhálós tároló olyan egyéni tulajdonsága került hozzáadásra a rendszerhez, mely lehetővé tette a pluszjel visszafejtéséhez kapcsolódó viselkedés vezérlését. Az egyéni tulajdonság alapértelmezett viselkedése megegyezik a régi viselkedésmóddal, mely az URL cím bármely pontján visszafejtette a pluszjelet.
Amennyiben olyan URL címekkel rendelkezik, melyek nem visszafejtendő pluszjelet tartalmaznak, úgy false értékre kell állítania a világhálós tároló com.ibm.ws.webcontainer.decodeURLPlusSign egyéni tulajdonságát. Az alapértelmezett viselkedés: true.
A Java szabály megvizsgálja az URL konstruktorokat, és ha lehetséges, akkor a konstruktorok spec, host és file paramétereit is, hogy ellenőrizze a pluszjelek hiányát. A szabály a String literálokat vagy végleges String változókat átadó konstruktorokat keresi, melyek ugyanabban a fordítási egységben kerültek meghatározásra. Ha meg tudja vizsgálni a spec, host vagy file paramétereket, akkor csak azokat a konstruktorokat látja el jelzővel, melyek megsértik a szabályt.
A Java szabály az URL konstruktor változóként kódolt spec, host vagy file értékkel rendelkező példányait is ellátja jelzővel, melyek így nem vehetnek részt a vizsgálatban.
1. példa
|
import java.net.URL; URL url = new URL("http://www.domain.com?id=test&name=plusz+jel"); } |
Az 1. példában a szabály az URL konstruktort nem látja el jelzővel, mivel a pluszjel a lekérdezési paraméterekben található.
2. példa:
|
import java.net.URL; URL url = new URL("http://www.domain.com/plus+path?id=test&name=ok"); } |
A 2. példában a szabály jelzővel látja el az URL konstruktort, mivel pluszjel található az URL cím útvonalat tartalmazó részében.
További információkért tekintse meg a következő leírást: java.net.URL Java dokumentáció.