我的应用程序可以在
找到资源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
为什么我有这个额外的我的应用程序?我哪里出错了?
答案 0 :(得分:1)
你是如何得到你的uri价值的?它的价值是什么?我怀疑它可能是“/ my-app / xxx / test / bat”。当您使用request.getRequestDispatcher时,如果路径以“/”开头,则它被解释为相对于当前上下文根。