只要请求不好使就召唤mvc:annotation-driven

<mvc:default-servlet-handler/>

<mvc:annotation-driven/>

现象:

1)、都没配?动态资源(@RequestMapping映射的资源能访问,静态资源(.html,.js,.img))

HandlerMapping:

动态资源能访问:

DefaultAnnotationHandlerMapping中的handlerMap中保存了每一个资源的映射信息;

静态资源不能访问:

就是handlerMap中没有保存静态资源映射的请求,

HandlerAdapter:九大组件之方法执行的适配器;与HandlerMapping平行

2)、只加一个<mvc:default-servlet-handler/>静态资源ok,动态资源完蛋

HandlerMapping中  变化;

/**org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler即交给tomcat

动态不能访问:DefaultAnnotationHandlerMapping没有了;用SimpleUrlHandlerMapping替换了,他的作咏就是将所有请求直接交给tomcat;如果这个tomcat写了Servlet还好,但这个tuomcat除了配置一个前端控制器以外,别的什么也没配;所以就不能处理动态请求

静态能访问的原因:SimpleUrlHandlerMapping把所有请求都映射给tomcat;

HandlerAdapter:

AnnotationMethodHandlerAdapter都没有了;

3)都加上才都能访问

  <mvc:default-servlet-handler/>

<mvc:annotation-driven/>

HandlerMapping变化:

与前面现象相比,handlerMapping里面多了一个现在有三个,按照从上到下的顺序依次查询,BeanNameUrlHandlerMapping一直没用

多的那一个叫RequestMappingHandlerMapping:动态资源可以访问

多的这一个里面不再有handlerMap,而是handlerMethods

SimpleUrlHandlerMapping:将请求直接交给tomcat;有他,静态资源就没问题;

HandlerAdapter:

原来的

AnnotationMethodHandlerAdapter;被换成RequestMappingHandlerAdapter;

RequestMappingHandlerAdapter源码确定参数都用成解析器了

【串线篇】SpringMvc之强大的annotation-driven标签的更多相关文章

  1. SpringMVC和Freemarker整合,带自定义标签的使用方法

    SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342 ...

  2. 【串线篇】概述SpringMvc和spring整合

    SpringMVC和Spring整合的目的:分工明确: SpringMVC的配置文件就来配置和网站转发逻辑以及网站功能有关的(视图解析器,文件上传解析器,支持ajax,xxx):springmvc.x ...

  3. 【串线篇】SpringMVC九大组件

    SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean.FrameworkServlet和 DispatcherServlet. HttpServletBean直接继 ...

  4. 【串线篇】spring boot全面接管springMvc

    一.Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC 以下是SpringBoot对SpringMVC的默认配置:(WebMvcAutoC ...

  5. 【串线篇】SpringMvc数据传出

    /** * SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面 *  * 四大域: *  pageContext:${pageScope.msg }< ...

  6. 【串线篇】SpringMvc框架乱码

    提交的数据可能有乱码: * 请求乱码: *      GET请求:改server.xml:在8080端口处URIEncoding="UTF-8" *      POST请求: * ...

  7. 【串线篇】MVC与SpringMVC

    1.二者区分 MVC: SpringMvc: DispatcherServlet(前端控制器名) 2.springmvc思想 Spring MVC 通过一套 MVC 注解,让 POJO成为处理请求的控 ...

  8. 【串线篇】SpringMVC运行流程

    1.所有请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理 2.根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行链(包 ...

  9. 【串线篇】SpringMvc源码分析

    一.DispathcherServlet结构分析 1).所有请求过来DispatcherServlet收到请求, 2).调用doDispatch()方法进行处理 1).getHandler():根据当 ...

随机推荐

  1. python爬虫 1.自己定义类实现scrapy框架的基本功能

    1.定义调度器,引擎,下载器,爬虫器,管道器 # 调度器,下载器,爬虫器,引擎,管道类 class Scheduler(): """调度器类""&qu ...

  2. javaScript的关键字与保留字

    JavaScript 关键字: break case catch continue default delete do else finally for function if in instance ...

  3. 每天一个linux命令:tail(16)

    tail tail命令用于输入文件中的尾部内容,不指定文件时,作为输入信息进行处理.tail命令默认在屏幕上显示指定文件的末尾10行.命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以 ...

  4. 【RabbitMQ】使用RabbitMQ实现延迟任务

    场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 上述类似的需求是我们经常会遇见的问题. ...

  5. 【Dart学习】--Dart之超级父类之Object

    一,概述 -- Object Dart语言和Java一样,都是面向对象语言,所有的类也都有个公共的父类----->Object.该类位于Dart sdk核心库core目录下. 二,构造方法 // ...

  6. 洛谷 4099 [HEOI2013]SAO——树形DP

    题目:https://www.luogu.org/problemnew/show/P4099 结果还是看了题解才会…… 关键是状态,f[ i ][ j ] 表示 i 子树. i 号点是第 j 个出现的 ...

  7. Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class

    Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class A well-architecte ...

  8. CPU C-States Power Saving Modes

    http://www.hardwaresecrets.com/article/611 Everything You Need to Know About the CPU C-States Power ...

  9. CPUID

    http://en.wikipedia.org/wiki/CPUID CPUID From Wikipedia, the free encyclopedia    The CPUID opcode i ...

  10. fatal: early EOF fatal: index-pack failed & Git, fatal: The remote end hung up unexpectedly

    https://stackoverflow.com/questions/15240815/git-fatal-the-remote-end-hung-up-unexpectedly https://s ...