Tapestry:如何将不推荐使用的 URL 重定向到错误页面
Tapestry: How to redirect deprecated URLs to an error page
我有使用 Apache Tapestry 构建的遗留 Web 应用程序。除了几个页面之外,我已经弃用了应用程序的大部分功能。我希望此应用程序在生产中 运行,但我想将已弃用的 pages/URLs 重定向到某个错误代码为 404 的错误页面。我应该在哪里配置它?我有 web.xml 和 jboss-web.xml。我是否需要在某些 Tapestry 配置文件中执行此操作?
您可以为 RequestHandler 服务贡献一个 RequestFilter,即在您的 AppModule 中:
public void contributeRequestHandler(
OrderedConfiguration<RequestFilter> configuration)
{
// Each contribution to an ordered configuration has a name,
// When necessary, you may set constraints to precisely control
// the invocation order of the contributed filter within the pipeline.
configuration.add("DeprecatedURLs", new RequestFilter() {
@Override
public boolean service(Request request,
Response response,
RequestHandler handler) throws IOException
{
String path = request.getPath();
if (isDeprecated(path))
{
response.sendError(404, "Not found");
return;
}
return handler.service(request, response);
}
}, "before:*");
}
注意 before:*
排序约束,它应该将此过滤器注册为 RequestHandler
's configuration 中的第一个。
我有使用 Apache Tapestry 构建的遗留 Web 应用程序。除了几个页面之外,我已经弃用了应用程序的大部分功能。我希望此应用程序在生产中 运行,但我想将已弃用的 pages/URLs 重定向到某个错误代码为 404 的错误页面。我应该在哪里配置它?我有 web.xml 和 jboss-web.xml。我是否需要在某些 Tapestry 配置文件中执行此操作?
您可以为 RequestHandler 服务贡献一个 RequestFilter,即在您的 AppModule 中:
public void contributeRequestHandler(
OrderedConfiguration<RequestFilter> configuration)
{
// Each contribution to an ordered configuration has a name,
// When necessary, you may set constraints to precisely control
// the invocation order of the contributed filter within the pipeline.
configuration.add("DeprecatedURLs", new RequestFilter() {
@Override
public boolean service(Request request,
Response response,
RequestHandler handler) throws IOException
{
String path = request.getPath();
if (isDeprecated(path))
{
response.sendError(404, "Not found");
return;
}
return handler.service(request, response);
}
}, "before:*");
}
注意 before:*
排序约束,它应该将此过滤器注册为 RequestHandler
's configuration 中的第一个。