检查 ServletResponse sendRedirect() 方法的期望行为

此规则会标记方法 sendRedirect(String) javax.servlet.http.HttpServletResponse 接口作为此方法的行为可能与预期不一样。 WebSphere 实现 ServletResponse.sendRedirect() 方法将 URL 转换为相对 URL。 它会移除最后一个斜杠之前的任何路径信息。 如果这不是应用程序的预期行为,那么可以通过设置 Web 容器定制属性进行更正。 您应该检查应用程序,以查看在以下位置传递了哪些类型的 URL: sendRedirect() 方法调用以确定是否需要执行任何操作。

Web 容器定制属性 com.ibm.ws.webcontainer.RedirectWithPathInfo 可用于启用非相对 URL 行为。 如果此属性设置为 true,那么将使用路径信息来重定向 response.sendRedirect。 从 Servlet 3.1 实现开始,此行为将是缺省行为,将忽略 Web 容器定制属性。

例如:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
// code
resp.sendRedirect("xyz");
}

方法调用 resp.sendRedirect("xyz"); 会被举报

有关更多信息,请参阅:
Web container custom properties