【发布时间】:2011-10-18 09:41:33
【问题描述】:
我正在使用一个 java servlet 容器,它提供来自 webapp 目录的文件。比如说我有 Foo.html。 host:80/Foo.html 将提供此文件。我如何为 host:80/XXX/YYY 提供 Foo.html,其中 XXX 和 YYY 可能是很多东西?我不是指重定向。
不确定它有多重要。我正在使用 Jetty 和 Guice 过滤器。
【问题讨论】:
我正在使用一个 java servlet 容器,它提供来自 webapp 目录的文件。比如说我有 Foo.html。 host:80/Foo.html 将提供此文件。我如何为 host:80/XXX/YYY 提供 Foo.html,其中 XXX 和 YYY 可能是很多东西?我不是指重定向。
不确定它有多重要。我正在使用 Jetty 和 Guice 过滤器。
【问题讨论】:
在所需的 URL 模式上映射一个 servlet,该模式使用 RequestDispatcher#forward() 转发到目标资源。
// ...
request.getRequestDispatcher("Foo.html").forward(request, response);
这并不像重定向那样反映浏览器地址栏的任何变化——如果这毕竟是您的实际问题。重定向基本上告诉浏览器在给定位置发送全新的 HTTP 请求。转发基本上是告诉 servlet 容器在响应中加载给定的资源。
【讨论】: