只要请求不好使就召唤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. vs2005下opengl(glut)的配置记录

    摘自:http://blog.csdn.net/joeblackzqq/article/details/6956959 首先参考了网上的安装配置环境部分:http://blog.csdn.net/Id ...

  2. 正确读取resources目录下的文件

    问题描述:本地可以正常读取areacode.json文件,打成jar包在测试环境找不到该文件. 问题代码: static { StringBuffer strbuffer = new StringBu ...

  3. MySQL-其它整理

    来自:http://www.w3school.com.cn/sql/sql_server.asp 一:基本操作 1)插入 INSERT INTO 表名称 VALUES (值1, 值2,....): I ...

  4. Ubuntu12.04安装配置vncserver

    安装 sudo apt-get install vnc4server 修改配置文件 sudo vim ~/.vnc/xstartup #!/bin/sh # Uncomment the followi ...

  5. pylab和pyplot的区别

    Pylab combines the functionality of pyplot with the capabilities of NumPy in a single namespace, and ...

  6. cocos2D-X 打包

    { //首先有java jdk,android sdk,android ndk //用android studio  import //匹配gradle 的版本 有些gradle可能下载不下来,不用慌 ...

  7. vue cli 项目中设置背景图

    https://blog.csdn.net/MoLvSHan/article/details/78204972 不能直接写成相对路径,像下面这这种就会报错 backgroundImage: " ...

  8. delphi按字节长度分割字符串函数(转)

    此字符串分割函数用delphi编写,可以适应字符串中存在双字节字符和单字节字符. function TricheditEfm.SplitString(source:string;Sleng:Integ ...

  9. vue和php-前后台交互

    vue和php-前后台交互 前端主要代码: <template> <div class="main-member-info"> <form @subm ...

  10. exception中return方法

    public class ExceptionPitfall { public static void main(String[] args) { try { throw new RuntimeExce ...