如何在web.xml或Guice servlet模块中排除/重定向某些url模式?

dat*_*ser 6 java regex deployment-descriptor guice

我需要使用url模式为我的主应用程序提供服务,"/*"以便此模式与Servlet匹配.我遇到的问题是现在位于"/css/all.css","/ images /"等的所有css文件和图像都经过这个Servlet,这是不可取的.我希望直接访问这些文件.处理这种情况的更好方法是什么?

注意:我使用Guice的Servlet模块来配置模式.

谢谢!

Jus*_*gan 5

我们需要具体了解哪些请求应该路由到您的servlet,以便我们知道如何编写规则.我不知道是否a)除了CSS和图像之外的所有请求都应该发送到你的servlet,或者b)你的servlet应该只处理对特定文件夹/目录集的请求.您可能想要做以下两件事之一:

排除特定文件夹:

^/(?!css|images).*
Run Code Online (Sandbox Code Playgroud)

或包含特定文件夹:

^/myservlet/.*
Run Code Online (Sandbox Code Playgroud)

如果您在前面的问题中指出,您希望在模式中至少需要一个字符,则应将这些*符号更改为+if /.

  • 请注意,这仅适用于Guice,而不适用于问题标题中提到的web.xml.web.xml`url-pattern`仅支持简单的路径和扩展名映射通配符:`/*`和`.*` (2认同)