我已经设置了许多规则的UrlRewriterFilter(Tuckey),它对我的servlet非常有用。但我想使用相同的配置来重写servlet之外的URL - 在使用url生成电子邮件的代码中。
所以,我需要以某种方式启动UrlRewriter(或某种包装器)来处理传出的url,即用我在config(urlrewrite.xml)中定义的出站规则重写它们。
我想像这样使用它:
String prettyUrl = urlRewriter.rewriteOutgoingUrl(uglyUrl);
这有可能吗?如何实现这一目标?
答案 0 :(得分:0)
您可能只需要初始化UrlRewriteFilter。由于您必须在web.xml文件中添加此项,因此UrlRewriteFilter配置文件可能会加载一次。我会尝试在你定义的一些包装类中的静态初始化器中加载它。要定义静态初始化程序,您需要做的就是在类中具有以下内容:
static {
//Your initialization code goes here
}
此代码仅在运行时初始化一次。欲了解更多信息,请看这里: http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html
答案 1 :(得分:0)
它是开源的。您可以查看它的源代码(http://code.google.com/p/urlrewritefilter/source/browse/trunk/src/java/org/tuckey/web/filters/urlrewrite/UrlRewriteFilter.java)并查看逻辑是否在独立类中可用,这些类不依赖于servlet请求/响应对象。如果是,只需使用它。否则,您可以基于原始源自己构建它,尽可能多地重用库。