我需要为我的主应用程序提供url模式"/*"
,因此该模式与Servlet相匹配。我遇到的问题是现在所有的css文件和图像位于"/css/all.css","/images/"等正在通过这个Servlet,这是不希望的。我希望这些文件能被直接访问。处理这种情况的更好方法是什么?
注意:我使用Guice的Servlet模块来配置模式。
谢谢!
我们需要明确地知道哪些请求应该路由到您的servlet,以便我们知道如何编写规则。我不知道是否a)除了CSS和图像之外的所有请求都应该发送到您的servlet,或者b)您的servlet应该只处理对特定文件夹/目录集的请求。您可能需要做以下两件事之一:
排除特定文件夹:
^/(?!css|images).*
或包含特定文件夹:
^/myservlet/.*
您应该将这些*
符号更改为+
,如果您在前面的问题中指出,您希望在模式中的/
之后至少需要一个字符。
这应该可以为您工作:
让所有的image/css等资源都通过默认的servlet。然后做一个这样的映射:
<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>