检查 JSP 欢迎文件中的 getQueryString 方法的有效配置

此规则会检测方法调用 request.getQueryString() 。 会标记这些调用,以便用户可以验证用法是否正确,并避免在查询字符串中使用空值。

在 WebSphere 中,此方法 request.getQueryString() 如果使用 URL 中不包含欢迎文件名的查询字符串直接或通过转发调用欢迎文件,那么将返回 null。 例如,如果欢迎文件是 index.jsp,并且用户输入 URL (或者另一个系统组件转发到 URL): http://mycompany.com/?param=value 那么 WebSphere 将向 index.jsp 发送请求。 呼叫 request.getQueryString() 但是,在 index.jsp 中,将返回 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. 用户可以设置 WebSphere 定制属性 com.ibm.ws.webcontainer.provideQStringToWelcomeFile 到 Web 容器属性中的 true 。 将此属性设为 true 将更改容器的行为,以将查询字符串传递至欢迎文件。

有关更多信息,请参阅: