栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC相关知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC相关知识

一、SpringMVC的实现思想

二、SpringMVC处理请求流程

HandlerMapping:IOC容器一启动就要去生成bean对象,每扫描一个Controller对象,就会扫描里面的RequestMapping,看这个Controller对象能处理什么请求,扫描到了就保存在handlerMap中。下次请求过来的时候直接看遍历这个map里面找到可以处理这个请求的处理器,然后进行对应的操作

  1. 浏览器向服务器发送请求,服务器接受到请求以后,由Dispatcher进行处理;
  2. 遍历HandlerMapping,里面保存了RequestMapping和handler的映射规则;
  3. 看当前HandlerMapping里面是否可以处理当前请求,如果可以找到对应的HandlerAdapter;如果不可以,继续遍历下一个HandlerMapping(这里可以进行SpringBoot的扩展,可以自定义HandlerMapping)
  4. 找到了以后,使用HandlerAdapter来执行目标方法,处理浏览器的请求

    这里对map中所有的HandlerMapping进行遍历,类似于设计模式中的责任链模式

三、支持Rest风格的URL请求,使用HiddenHttpMethodFilter
  • 浏览器form表单只支持GET和POST方法,而不支持DELETE、PUT等方法,但是SringMVC支持Rest风格的URL请求,但是在编写form表单的时候POST、DELETE和PUT的method=POST,如下图所示:

  • 这里的name必须是指定的"_method",但是可以自定义,Spring里面和SpringBoot里面都可以自定义name。
  • 源码如下所示,先获得_method里面的值,判断当前的请求是否是post请求,如果都符合条件,那么就会使用装饰器模式,来对原来的方法进行包装,把request和method一起包装成为一个HttpServletRequest请求。

四、自定义类型转换器

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号