java - Spring MVC 应用程序的这些 mvc :resources mapping tags declared into the servlet-context. xml 意味着什么?

标签 java spring spring-mvc jakarta-ee model-view-controller

我对 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 ,您可以将这些请求分类为静态资源请求和动态资源请求。

对动态资源的请求与您在 Controller 方法中编程的内容相匹配,并且它们是典型框架处理的主题,例如路径匹配、内容协商、验证、绑定(bind)、转换、格式化、参数解析。

对静态资源的请求是对 .js、.css 或其他一些未创建的资源的请求,而是已随应用程序部署的资源的请求。它们不是由编程 Controller 方法处理,而是由 ResourceHttpRequestHandler 处理。 ,仅仅是因为与动态请求相比,它们具有完全不同的一组处理操作(除了路径匹配之外)。您可以为给定映射定义静态文件的位置(可以是类路径、其他一些 webapp 文件夹或文件系统)、资源的缓存策略、转换(例如修改 css 中的链接、将 LESS 转换为 CSS)

所以并不是说您不想让 servlet 处理静态资源,事实上您可以通过这样做获得很多可能性和灵活性,例如检查 handling static web resources只是静态和动态请求是不同类型操作的主题,并且通过使用 mvc:resources标签,您可以通过映射指定哪些请求将作为静态请求处理

关于java - Spring MVC 应用程序的这些 mvc :resources mapping tags declared into the servlet-context. xml 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157443/

相关文章:

java - JOOQ:通过主键获取单行?

java - 如何使用 AES-256 在 Spring Boot 上设置 SSL (TLS)/HTTPS?

java - 初始化@PostConstruct方法时出现空指针异常

jsp - glyphicons-halflings-regular.woff2 未加载 404 错误

java - 非法转义字符netbeans

java - 不断检查子弹是否触及节点

java - 您如何在Java中定义构造函数?

spring - Grails对于transaction = false的默认传播是什么?

Spring mvc 应用程序在 tomcat 中不能作为 war 运行,但在 IDE 中运行良好

java - 根据单个 .war 中的主机使用数据库