SpringMvc项目配置<mvc:default-servlet-handler/>一定要加上配置注解驱动<mvc:annotation-driven/>,否则controller无法访问。

在SpringMVC配置中,使用<mvc:default-servlet-handler/>来处理静态资源时,需要配合<mvc:annotation-driven/>注解驱动。如果不采用<mvc:default-servlet-handler/>,则可选是否添加注解驱动。

spring-mvc.xml中如果对静态资源的放行没使用传统方式,而是使用了<mvc:default-servlet-handler/>,就必须加上注解驱动<mvc:annotation-driven/>。

如果你不使用<mvc:default-servlet-handler/>,可用不用加注解驱动<mvc:annotation-driven/>。

### 静态资源处理配置方式 在 Spring MVC 中,若需正确配置 `<mvc:resources>` 以实现静态资源的访问,应结合 `mapping` 和 `location` 属性进行设置。其中,`mapping` 属性用于指定 URL 映射路径,而 `location` 属性则用于指定资源在服务器上的实际存储位置。 例如,以下配置表示将 `/img/` 路径下的所有请求映射到应用中的 `/img/` 目录: ```xml <mvc:resources location="/img/" mapping="/img/**"/> ``` 通过该配置Spring MVC 将会直接返回对应路径下的静态资源文件(如图片、CSS 或 JavaScript 文件),而不经过控制器处理[^2]。 ### 配置注意事项 若未对静态资源进行合理配置,DispatcherServlet 可能会捕获所有请求,包括对静态资源的访问,从而导致资源无法正确加载或返回错误响应[^3]。为避免此类问题,推荐使用 `<mvc:resources>` 标签替代 `<mvc:default-servlet-handler />`,因为前者由 Spring MVC 框架本身处理静态资源,并支持缓存控制、版本管理等附加功能[^1]。 此外,若仍希望使用默认的 Servlet 处理静态资源,则可启用如下配置: ```xml <mvc:default-servlet-handler /> ``` 此配置会将未被控制器匹配的请求交由容器的默认 Servlet 处理,适用于资源目录较多且不易一一映射的情况。 ### 示例配置 一个完整的 Spring MVC 静态资源处理配置示例如下: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 启用注解驱动 --> <mvc:annotation-driven /> <!-- 配置静态资源处理 --> <mvc:resources location="/img/" mapping="/img/**"/> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <!-- 若不使用 mvc:resources,可启用默认 Servlet 处理 --> <!-- <mvc:default-servlet-handler /> --> </beans> ``` ### Web.xml 配置建议 在 `web.xml` 中配置 DispatcherServlet 时,若将其映射路径设为 `/`,则会拦截所有请求,包括对静态资源的访问。此时必须通过 `<mvc:resources>` 或 `<mvc:default-servlet-handler />` 来确保静态资源可以正常加载[^4]。 示例 `web.xml` 配置如下: ```xml <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值