【发布时间】:2016-02-05 10:24:48
【问题描述】:
我正在开发一个部署在 Tomcat 上的 java web 应用程序。我正在使用 servlet 来处理一些功能,在 Servlet 中,我通过使用从一个 servlt 重定向到另一个 servlet SendRedirect 方法,它已成功重定向到其他 servlet。
问题:之前我们使用的是 Tomcat 版本 - 7.0.65,但最近已升级到 7.0.67。 将tomcat升级到新版本(7.0.67)后,发送重定向调用不起作用。
例子:
Public class MainServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// do some operations..
String emptyStr = " ";
String urlPath = "http:localhost:8085/DemoProject/demoServlet? username=dummy&eid=emptyStr";
response.sendRedirect(urlPath);
return;
}
}
我也看到了 Tomcat 规范,他们正在谈论重定向,这是我无法理解的。
Apache Tomcat 7.0.67 发布日期:2015-12-10 完整的发行说明可以在这里找到。 56917:根据 RFC7231 (HTTP/1.1),允许 HTTP/1.1 和更高版本的重定向使用相对 URI。这由 Context 上的新属性 useRelativeRedirects 控制,默认为 true。 (市场) 58660:更正 7.0.66 中由将上下文根的重定向从 Mapper 移动到默认 Servlet 的更改引起的回归。 (市场) 修复了部署应用程序时 HostConfig 中潜在的 NPE。覆盖率扫描报告的问题。 (紫罗兰色) 58655:使用 RemoteIpFilter 调用 HttpServletResponse.sendRedirect() 时修复 IllegalStateException。这是由于尝试正确生成重定向的绝对 URI 使用 56917 的修复,重定向现在可能是相对的,从而使 RemoteIpFilter 的 sendRedirect() 实现更加简单。这也解决了从 http 重定向到 https 到从 https 到 http 时重定向可能未按预期运行的问题。 (市场)
请调查问题,如果您有任何建议,请告诉我。
任何建议将不胜感激。
【问题讨论】:
-
代码sn-p有两个编译错误,URL语法错误。请不要粗心发布有问题的代码,并从您的问题中消除那些红鲱鱼。
-
您好@BalusC,请查看已编辑的问题。我的意图是指定一些示例,而不是提供我正在工作的运行代码。
标签: servlets tomcat7 httprequest httpserver