mvc:default-servlet-handler,mvc:annotation-driven与context:component-scan

1.<context:component-scan />
是对包进行扫描,解决@Controller标识的类的bean的注入和使用.
2 <mvc:annotation-driven />
添加注解驱动,使注解标注的类生效。用来匹配请求的Controller
3.<mvc:default-servlet-handler />
开通访问静态资源 ,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,对进入DispatcherServlet(web.xml转发器)的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由dispatcherServlet继续处理.在这里插入图片描述
详细讲解:
1.当不需要对静态资源实现restful风格访问时,web.xml配置为:
在这里插入图片描述
springmvc.xml配置为1<context:component-scan base-package=“com” /> 的时候,就可以处理来自.do的url请求。
2. 当需要对静态资源实现restful风格访问时,(2.1)那么web.xml就要解析所有的请求,而不是之前1那样只对.do解析,web.xml配置为:
在这里插入图片描述
( 2.2)要对静态资源访问,就需要配置<mvc:default-servlet-handler /> ,但配置了<context:component-scan />和<mvc:default-servlet-handler /> 没有<mvc:annotation-driven />,那所有的请求.do或者静态资源的请求都会被<mvc:default-servlet-handler /> 的默认default servlet解析.此时,静态资源没有问题,但.do没办法转发到<context:component-scan />的那么注解扫描得到controller上,当然就报错404.当再加上<mvc:annotation-driven />的时候,所有请求经<mvc:annotation-driven />处理一遍,相应的do请求被Controller处理,而静态资源因为没有相应的Controller就会被default servlet处理.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值