我在Spring中还很陌生,正在研究Spring MVC应用程序。
在 servlet-context.xml 配置文件中,我找到了以下 几 行:
<!-- resources exclusions from servlet mapping --> <mvc:resources mapping="/assets/**" location="classpath:/META-INF/resources/webjars/"/> <mvc:resources mapping="/css/**" location="/css/"/> <mvc:resources mapping="/img/**" location="/img/"/> <mvc:resources mapping="/js/**" location="/js/"/>
评论说 servlet映射中的资源排除 。
这些行到底是什么意思?我知道这个 servlet-context.xml 应该包含处理MVC行为的 DispatcherServlet 配置(这对我来说很清楚),但是前几行到底是什么?
您能详细解释一下我的意思和以前的语法吗?
如果考虑将所有请求都映射到的spring mvc配置,则DispatcherServlet可以将这些请求归为对静态和动态资源的请求。
DispatcherServlet
对动态资源的请求与您在控制器方法中编程的内容相匹配,它们是典型框架处理的主题,例如路径匹配,内容协商,验证,绑定,转换,格式化,参数解析。
对静态资源的请求是对.js,.css或其他尚未创建但已经与应用程序一起部署的其他资源的请求。它们不是由程序控制器方法而是ResourceHttpRequestHandler由来处理的,这仅仅是因为与动态请求相比(除了路径匹配),它们具有完全不同的处理动作集。您可以为给定映射定义静态文件的位置(可以是类路径,其他Webapp文件夹或文件系统),资源的缓存策略,转换(例如CSS中的modyfing链接,将LESS转换为CSS)
ResourceHttpRequestHandler
因此,并不是您不希望servlet处理静态资源,实际上,这样做可以带来很多可能性和灵活性,例如,处理静态Web资源就是静态和动态请求是不同类型的操作的主题,并且通过使用mvc:resources标记,您可以通过映射指定将哪些请求作为静态请求处理
mvc:resources