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

Java 如何在web.xml或Guice servlet模块中排除/重定向某些url模式?,java,regex,guice,deployment-descriptor,Java,Regex,Guice,Deployment Descriptor,我需要使用url模式“/*”为我的主应用程序提供服务,以便将此模式与Servlet匹配。 我现在遇到的问题是位于“/css/all.css”和“/images/”等位置的所有css文件和图像都要通过这个Servlet,这是不可取的。我想直接访问这些文件。 处理这种情况的更好方法是什么 注意:我使用Guice的Servlet模块来配置模式 谢谢 我们需要明确知道哪些请求应该路由到您的servlet,以便我们知道如何编写规则。我不知道是a)除了CSS和图像之外的所有请求都应该发送到您的servlet

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

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


谢谢

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

排除特定文件夹:

^/(?!css|图像)*
或包含特定文件夹:

^/myservlet/*

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

这应该适用于您:

让您的所有图像/css等资源都通过。然后像这样做一个映射:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.xml</url-pattern>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    <url-pattern>*.gif</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>

违约
*.xml
*.html
*.png
*jpg先生
*.gif
*.js
*.css

谢谢!我试图使用过滤器来实现这一点,但这更优雅!请注意,这仅适用于Guice,而不适用于问题标题中提到的web.xml。web.xml
url模式
仅支持简单路径和扩展映射通配符:
/*
*