0

我有我的应用程序来查找资源

http://myhost/my-app/test/bat

而且效果很好,现在有一个新的要求

http://myhost/my-app/xxx/test/bat, 

我只是想把它改写成旧的,所以我创建了一个过滤器:

if(uri.endsWith("/xxx/test/bat")){
     uri=uri.replace("/xxx/test", "/test");
     request.getRequestDispatcher(uri).forward(req, res);
  }
 else
     chain.doFilter(req, res);

但是tomcat容器将url重写为:

http://myhost/my-app/my-app/test/bat

/my-app 是 contextPath

为什么我有这个额外的我的应用程序?我哪里做错了?

4

1 回答 1

1

你是如何获得你的uri价值的?它的价值是什么?我怀疑它可能是“/my-app/xxx/test/bat”。当您使用 request.getRequestDispatcher 时,如果路径以“/”开头,它将被解释为相对于当前上下文根。

于 2013-04-21T02:29:17.333 回答