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

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

可以使用 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