Url URI重写添加不需要的上下文路径

Url URI重写添加不需要的上下文路径,url,jakarta-ee,forward,Url,Jakarta Ee,Forward,我有我的应用程序可用于查找资源 http://myhost/my-app/test/bat 它工作得很好,现在有了一个新的要求 http://myhost/my-app/xxx/test/bat, 我只是想将其重写为旧版本,因此我创建了一个过滤器: 但是tomcat容器将url重写为: http://myhost/my-app/my-app/test/bat /我的应用程序是contextPath 为什么我在我的应用程序中得到了这个额外的东西?我哪里出错了?您是如何获得uri值的?它的价

我有我的应用程序可用于查找资源

http://myhost/my-app/test/bat
它工作得很好,现在有了一个新的要求

http://myhost/my-app/xxx/test/bat, 
我只是想将其重写为旧版本,因此我创建了一个过滤器:

但是tomcat容器将url重写为:

http://myhost/my-app/my-app/test/bat
/我的应用程序是contextPath


为什么我在我的应用程序中得到了这个额外的东西?我哪里出错了?

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

你说得对!我使用request.getRequestURI()并获取“/my-app/xxx/test/bat”。我将参数改为“/test/bat”,现在可以工作了。谢谢
http://myhost/my-app/my-app/test/bat