Java Jetty RewriteHandler和RewriteRegexRule

Java Jetty RewriteHandler和RewriteRegexRule,java,regex,jetty,mod-rewrite,embedded-jetty,Java,Regex,Jetty,Mod Rewrite,Embedded Jetty,我正在尝试重写servlet的URL。URL被正确重写,但此后上下文不匹配。你知道怎么让它工作吗 RewriteHandler rewriteHandler = new RewriteHandler(); rewriteHandler.setRewriteRequestURI(true); rewriteHandler.setRewritePathInfo(true); rewriteHandler.setOriginalPathAttribute("requestedPath"); Rewr

我正在尝试重写servlet的URL。URL被正确重写,但此后上下文不匹配。你知道怎么让它工作吗

RewriteHandler rewriteHandler = new RewriteHandler();
rewriteHandler.setRewriteRequestURI(true);
rewriteHandler.setRewritePathInfo(true);
rewriteHandler.setOriginalPathAttribute("requestedPath");

RewriteRegexRule rewriteRegexRule = new RewriteRegexRule();
rewriteRegexRule.setRegex("/r/([^/]*).*");
rewriteRegexRule.setReplacement("/r?z=$1");
rewriteHandler.addRule(rewriteRegexRule);

ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
Context servletContext = new Context(contextHandlerCollection, "/");

servletContext.addServlet(new ServletHolder(new RedirectServlet()), "/r");
所以基本上
/r/asdf
被重写为
/r?z=asdf

但是,重写的
/r?z=asdf
现在不由servlet处理

另外,如果直接调用,
/r?z=asdf
也可以工作


我在这里粘贴了完整的代码:

结果我想要的是
RedirectRegexRule
而不是
RewriteRegexRule

结果我想要的是
RedirectRegexRule
而不是
RewriteRegexRule