spring mvc核心

spring mvc

一些web概念:

  • servlet:服务端小程序,用来接收并响应用户请求

mvc介绍:mvc是,m(model),v(view),c(controller)的缩写.mvc是一种设计规范,将业务逻辑,数据,显示分离的方法来组织代码.mvc主要降低了业务以及视图之间的耦合度.mvc是一种架构模式,mvc架构

model(模型):数据模型,提供要展示的数据.数据格式,数据模型

view(视图):负责模型数据的展示,一般是用户页面

controller(控制器):接收用户请求,委托给模型进行处理,处理完毕后把返回的模型数据返回给视图,由视图负责进行展示,也就是控制器做了调度员的工作

spring mvc是spring 框架的一部分,全称为spring web mvc

spring mvc的核心组件

  • dispatcherservlet:前端控制器,接收用户请求,并根据请求调用合适的处理器(处理类,方法)
  • handler:处理器,就是代码里@RequestMapping注解标记的类
  • handlerMapping:可以理解为handler的管理器,用于将url或者beanname与具体的处理器关联起来
    • simpleUrlHandler:key为配置的路径,如/user,value为具体的Handler如UserController
    • BeanNameHandler:没有用过
  • exceptionHandlerExceptionResolver:异常处理组件,springboot中的@ExceptionHandler自定义异常注解底层就是异常处理组件做的

spring mvc 核心组件源代码解析

handler

用于处理请求的一个类

handlerMapping

handler需要注册进springmvc的ioc容器中.**abstracturlHandlerMapping.registerhandler(urlPath,handler)**从spring ioc容器中获取handler的bean,再将bean与url放入handlerMap中保存供handlerMapping查询

用于映射url到具体处理类上

springmvc ioc容器会存储一个map,key为url路径,value为handler的Object

dispatcherServlet

dispatcherservlet用于拦截用户的请求,根据用户的请求将它分配给指定handler处理,处理完成后返回给用户

dispcherServlet有doDispatch方法,其中调用getHandler方法,其中就根据handlermapping中注册的handlermap的urlPath查找指定的handler,并交给它处理.

spring mvc的执行流程

  • 浏览器发送请求

  • 交给tomcat容器

  • web.xml中配置了/*,并且指向dispatcherservlet

  • 前端控制器接收处理请求调用合适的处理器(controller)

  • 找到@RequestMapping标记的方法,匹配路径

  • 处理器处理,返回modelAndView–>前端控制器处理,返回

  • 由视图处理器解析返回数据,找到映射路径的页面地址

  • dispatcher找到地址后返回给浏览器

spring mvc的优点

  • 层级之间的耦合性得到了大大的减少
  • 各层之间分工明确
  • 编写代码方便
  • 数据验证严谨
  • 与spring其他框架无缝衔接

常见错误

所有项目的web.xml都继承tomcat的web.xml,在tomcat的xml中有一个defaultServlet的处理类,用来处理静态资源,但是我们编写自己的dispatcherservlet使用了/的方式,覆盖了tomcat的web.xml,所以所有的静态资源也需要经过前端控制器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值