【串线篇】SpringMvc之强大的annotation-driven标签
只要请求不好使就召唤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标签的更多相关文章
- SpringMVC和Freemarker整合,带自定义标签的使用方法
SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342 ...
- 【串线篇】概述SpringMvc和spring整合
SpringMVC和Spring整合的目的:分工明确: SpringMVC的配置文件就来配置和网站转发逻辑以及网站功能有关的(视图解析器,文件上传解析器,支持ajax,xxx):springmvc.x ...
- 【串线篇】SpringMVC九大组件
SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean.FrameworkServlet和 DispatcherServlet. HttpServletBean直接继 ...
- 【串线篇】spring boot全面接管springMvc
一.Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC 以下是SpringBoot对SpringMVC的默认配置:(WebMvcAutoC ...
- 【串线篇】SpringMvc数据传出
/** * SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面 * * 四大域: * pageContext:${pageScope.msg }< ...
- 【串线篇】SpringMvc框架乱码
提交的数据可能有乱码: * 请求乱码: * GET请求:改server.xml:在8080端口处URIEncoding="UTF-8" * POST请求: * ...
- 【串线篇】MVC与SpringMVC
1.二者区分 MVC: SpringMvc: DispatcherServlet(前端控制器名) 2.springmvc思想 Spring MVC 通过一套 MVC 注解,让 POJO成为处理请求的控 ...
- 【串线篇】SpringMVC运行流程
1.所有请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理 2.根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行链(包 ...
- 【串线篇】SpringMvc源码分析
一.DispathcherServlet结构分析 1).所有请求过来DispatcherServlet收到请求, 2).调用doDispatch()方法进行处理 1).getHandler():根据当 ...
随机推荐
- Python格式输出汇总
print ('%10s'%('test')) print ('{:<10}'.format('test'))#left-aligned print ('{:>10}'.format('t ...
- 转载:Eclipse下的java工程目录
原文链接:https://www.cnblogs.com/milantgh/p/4029003.html 对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在 ...
- oracle常用sql汇总(随时更新)
1.wm_concat:将返回的多行数据汇总为一列,用,分割,数据类型默认为CLOB类型 2. 递归查询(树状结构数据查询,如菜单,部门等等) SELECT [LEVEL],* FEOM table_ ...
- mui滚动区域的实现
mui框架实现页面中间区域滚动,头部和底部固定不动,要滚动的区域一定要有mui-scroll-wrapper 和 mui-scroll 包裹 <div class="mui-conte ...
- JS中的作用域及闭包
1.JS中的作用域 在 es6 出现之前JS中只有全局作用域和函数作用域,没有块级作用域,即 JS 在函数体内有自己的作用域,但是如果不是在函数体的话就全部都是全局作用域.比如在 if.for 等有 ...
- [CF852H]Bob and stages
题意:给出平面上\(n\)个点,要求选出\(k\)个点,使得这些点形成一个凸包,且凸包内部没有点,求最大面积.无解输出\(0\). 题解:枚举凸包最左的点\(p\),删除所有在\(p\)左边的点,然后 ...
- <三剑客> 老大:awk命令用法
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一 个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...
- CVE-2017-0213 | 记一次失败的提权经历
环境: CVE-2017-0213下载 提权步骤: 提权失败.... 好迷啊,,,,事后查了一下补丁 我的wind7上也没装啊,然后防火墙也是关闭的 迷了迷了....
- C++的指针偏移
假设一个类的定义如下:class Ob{public:Ob() : a(1), b(10) {}int a;private:int b; };
- iOS图片压缩问题
对于压缩的处理我给出的建议是 先判断 图片的大小,如果是本地图片最好用nsfilemanager 来判断 .如果不能用这个判断的话 就只能先将图片转成data,然后再判断了. 图片转成data 当然就 ...