檢查 JSP 歡迎使用檔中的 getQueryString 方法配置是否有效

此規則會偵測 Web 模組 JSP 歡迎使用檔中的方法呼叫 request.getQueryString()。 會標示這些呼叫,讓使用者可以驗證用法正確,並避免查詢字串是空值。

在 WebSphere 中,當使用查詢字串來呼叫歡迎使用檔時,如果該字串不包含 URL 中的歡迎使用檔名稱,不論是直接或透過轉遞來呼叫歡迎使用檔,request.getQueryString() 方法都會傳回空值。 比方說,如果歡迎使用檔是 index.jsp,而且使用者輸入 URL(或另一個系統元件轉遞至 URL)http://mycompany.com/?param=value,則 WebSphere 會傳送要求至 index.jsp。 不過,index.jsp 中的 request.getQueryString() 呼叫會傳回 null,而非 param=value。 此情況僅適用於 web.xml 部署描述子中定義的歡迎使用檔。

使用者可以利用下列三種方式來取得 JSP 歡迎使用檔中的查詢字串值:

  1. 確定 URL 包含 JSP 歡迎使用檔名稱。 舉例來說,將 URL 從 http://mycompany.com/?param=value 變更為 http://mycompany.com/index.jsp?param=value。 這項解決方案適用於轉遞至 JSP 的元件,但不適用於可讓外部使用者直接輸入 URL(例如:使用 Web 瀏覽器)來直接存取的 JSP 歡迎使用檔。
  2. 使用者可以呼叫 request.getAttribute("javax.servlet.forward.query_string"),而非呼叫 request.getQueryString(),來取得查詢字串。
  3. 使用者可以在 Web 儲存器內容中,將 WebSphere 自訂內容 com.ibm.ws.webcontainer.provideQStringToWelcomeFile 設為 true。 將這個內容設為 true,會將儲存器的行為變更為將查詢字串傳遞給歡迎使用檔。

如需相關資訊,請參閱: