【发布时间】:2012-11-29 13:59:00
【问题描述】:
我需要在 ServletFilter 中重写 URL,以便将“foo.domain.com”重写为“foo.domain.com/foo”。我正在使用 Jetty,它有一种方便的修改请求的方法:只需将请求转换为 Jetty Request 对象,您就会得到一堆允许您修改它的设置器。这是我的代码(不起作用):
String subdom = Util.getSubDomain(req);
org.eclipse.jetty.server.Request jettyReq = (Request) req;
String oldUri = jettyReq.getRequestURI();
String newUri = "/" + subdom + oldUri;
jettyReq.setRequestURI(newUri);
我的目的是从 /foo 目录中提供文件,该目录位于 /webapps/root/foo。
我猜我还需要调用 setContextPath()、setPathInfo()、setURI()、setServletPath() 之类的东西,还有谁知道呢。
什么神奇的组合使它看起来像原来的请求是针对 /foo 的?
编辑:澄清一下,我说代码不起作用的原因是文件仍然从 /webapps/root 提供,而不是 /webapps/root/foo。
【问题讨论】:
标签: url-rewriting jetty servlet-filters