管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化
管理springmvc组件
概述
在使用springmvc时要配置哪些东西
前端控制器
控制器映射器和适配器
- 映射器 Map<Set<String>,Object>
- Set<String> 存放资源地
- @RequestMapper(value={“helle2”,”hello2”})
- Object 存放方法对象和方法所有的对象的对象
- 执行方法 method.invoke(obj,args) Method
- Set<String> 存放资源地
- 适配器
- @Controller
- 实现Controller接口
- 实现HttpRequestHandler的接口
- 映射器 Map<Set<String>,Object>
视图解析器
InternalResourceViewResolver
文件上传的
拦截器
前端控制器的自动管理
找到 WebMvcAutoConfiguration
找到 DispatcherServletAutoConfiguration
创建
注册
控制器的自动管理[就是自定义的controller]
自动扫描
|--默认扫描启动类所有的包及其子包;
如果不在启动类所有的包及其子包下面
要使用 @CompomentScan(basePackage={“com.sxt.controller”,”com.bjsxt.controller”})
视图解析器的自动管理
找到 WebMvcAutoConfiguration
@Bean
@ConditionalOnMissingBean
public InternalResourceViewResolver defaultViewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix(this.mvcProperties.getView().getPrefix());resolver.setSuffix(this.mvcProperties.getView().getSuffix());return resolver;
}@Bean
@ConditionalOnBean(View.class)
@ConditionalOnMissingBean
public BeanNameViewResolver beanNameViewResolver() {BeanNameViewResolver resolver = new BeanNameViewResolver();resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 10);return resolver;
}@Bean
@ConditionalOnBean(ViewResolver.class)
@ConditionalOnMissingBean(name = "viewResolver", value = ContentNegotiatingViewResolver.class)
public ContentNegotiatingViewResolver viewResolver(BeanFactory beanFactory) {ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();resolver.setContentNegotiationManager(beanFactory.getBean(ContentNegotiationManager.class));// ContentNegotiatingViewResolver uses all the other view resolvers to locate// a view so it should have a high precedenceresolver.setOrder(Ordered.HIGHEST_PRECEDENCE);return resolver;
}
进入ContentNegotiatingViewResolver
总结
ContentNegotiatingViewResolver 是一个视图解析器的收集器
只要IOC容器里面有实现有ViewResolver接口的对象都会被收集起来 如ThymeleafViewResolver
文件上传和下载的视图解析器
找到MultipartAutoConfiguration
找到MultipartProperties
静态资源的访问
classpath:resources/MATE-INF/resources
classpath:resources/resources
classpath:resources/static
classpath:resources/public
消息转化
找到 WebMvcAutoConfiguration
格式化转化
欢迎页面的配置
以前web.xml
<welcome-file-list>
</webcome-file-list>
Springboot默认配置是static/index.html
进入WebMvcAutoConfiguration
管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化相关推荐
- SpringMVC处理Json、文件上传、拦截器
SpringMVC处理Json.文件上传.拦截器 : 处理JSON 链接 http://repo1.maven.org/maven2/com/fasterxml/jackson/core/ 步骤 编写 ...
- 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s
1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2 spring-mv ...
- 【SSM框架系列】SpringMVC的文件上传、拦截器及异常处理
SpringMVC的文件上传 服务器端实现文件上传的技术有很多种,Servlet3.0,FileUtils,框架等等,都可以实现文件上传,不管使用哪一种上传技术,都必须满足三要素: 表单项type=& ...
- SpringMVC的文件上传和拦截器
目录 一.文件上传 1.概述 2.案例1 3.案例2 二.拦截器 1.HandlerInterceptor接口 2.案例:拦截器实现用户权限验证 一.文件上传 1.概述 SpringMVC会将上传文件 ...
- springmvc 文件上传和拦截器
文件上传: 单文件: @Controller public class FirstController {@RequestMapping("/first")public Strin ...
- SpringBoot→请求参数、返回参数、文件上传、拦截器、异常处理、定时任务、异步任务
web请求static静态资源 localhost:8080/cat.png localhost:8080/test.html localhost:8080/abc/test.html localho ...
- SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器
SpringMVC入门(二)-- 参数的传递.Controller方法返回值.json数据交互.异常处理.图片上传.拦截器 参考文章: (1)SpringMVC入门(二)-- 参数的传递.Contro ...
- Java文件上传大杀器-绕waf(针对commons-fileupload组件)
Java文件上传大杀器-绕waf(针对commons-fileupload组件) Ps:高版本才有1.3以上 来个中二的标题,哈哈哈,灵感来源于昨晚赛博群有个师傅@我是killer发了篇新文章,在那篇 ...
- 【SpringMVC笔记】拦截器 + 文件上传下载
拦截器 + 文件上传下载 拦截器(interceptor) 自定义拦截器 验证用户是否登录 (认证用户) 没有拦截器 配置拦截器 文件的上传 文件输出流进行文件上传 file.Transto 进行文件 ...
最新文章
- 一文读懂RocketMQ的存储机制
- cpu使用率 htop显示_Linux查看CPU和内存使用情况
- PPP、MP 和 SLIP 配置(上)
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
- BZOJ 3622 Luogu P4859 已经没有什么好害怕的了 (容斥原理、DP)
- cmd cd 无法切换目录_一分钟掌握cmd基础操作,告别鼠标
- spring5高级编程_Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
- html校园首页设计说明范文,网页设计作品设计说明-必看请相互转告
- 训练自己的数据_PyTorch版CenterNet训练自己的数据集
- JavaScript学习(六十五)—数组知识点总结
- ExcelApplication相关资料
- 轻松解决U盘拷贝文件时提示文件过大问题
- IOS逆向(9)DebugServer + LLDB
- 罗振宇2021“时间的朋友·长大以后”跨年演讲全文无删减整理,核心观点、大纲提炼
- MCU裸系统下快速平方根实现
- 【论文翻译】Playing Atari with Deep Reinforcement Learning
- 腾讯云和阿里云,百度云,华为云服务器哪个的性能比较稳定,没有出现经常崩溃现象呢?
- TIA博途中FC功能块的介绍与管脚定义
- js使用广度优先给树形结构添加level
- matlab 点顺时针排序,按顺时针顺序对点排序?
热门文章
- nodejs fs path
- 解题:HEOI 2016 求和
- Sitecore® 8.2 Professional Developer考试心得
- 设计模式:享元(FlyWeight)模式
- 立即终止Sleep的线程
- android+高通平台缩写汇聚
- 高通QXDM抓modem log
- 高通平台device tree生成platform device的过程(MSM8909)
- linux一切皆文件之tty字符设备(深入理解sshd创建pty的过程) (五)
- zabbix的主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...