SpringMVC学习笔记

1. SpringMVC介绍

  1. SpringMVC是Spring框架的一个模块,SpringMVC和Spring无需通过中间整合层进行整合
  2. SpringMVC是一个基于MVC的web框架
  3. SpringMVC表现层:方便前后端数据的传输
  4. SpringMVC拥有控制器,接受外部请求,解析参数传给服务层

在这里插入图片描述图片来源于网路

2.SpringMVC构架原理解析

  1. 发起请求到前端控制器(DispatcherServlet)
  2. 前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解进行查找
  3. 处理器映射器HandlerMapping向前端控制器返回Handler
  4. 前端控制器调用处理器适配器去执行Handler
  5. 处理器适配器去执行Handler
  6. Handler执行完成给适配器返回ModelAndView
  7. 处理器适配器向前端控制器返回ModelAndView,ModelAndView是SpringMVC框架的一个底层对象,包括Model和View
  8. 前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
  9. 视图解析器向前端控制器返回View
  10. 前端控制器进行视图渲染,视图渲染键模型数据(在ModelAndView对象中)填充到request域
  11. 前端控制器向用户响应结果

3. 组件

  1. 前端控制器DispatcherServlet(不需要程序员开发)
    作用:接收请求,响应结果,相当于转发器,中央处理器
    有了DispatcherServlet减少了其他组件之间的耦合度
  2. 处理器映射器HandlerMapping(不需程序员开发)
    作用:根据请求的url查找Handler
  3. 处理器适配器HandlerAdapter
    作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
  4. 处理器Handler(需要程序员开发)
    注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
  5. 视图解析器View resolver(不需要程序员开发)
    作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
  6. 视图View(需要程序员开发jsp)
    View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

4.配置解析

  1. DispatcherServlet
    DispatcerServlet是前端控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据响应的规则分发到目标Controller来处理,是配置SpringMVC的第一步
  2. InternalResourceViewResolve
    视图名称解析器
  3. 以下出现的注解
    @Controller 负责注册一个bean到Spring上下文中
    @RequestMapping注解为控制器指定可以处理哪些URL请求

5.常用注解

  1. @Controller
    负责注册一个bean到Spring上下文中
  2. @RequestMapping
    注解为控制器指定可以处理哪些URL请求
  3. @RequestBody
    该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上,再把HttpMessageConverter返回的对象数据绑定到Controller中的方法的参数上
  4. @ResponseBody
    该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter强制转换为指定格式后,写入到Response对象的body数据区
  5. @ModelAttribute
    在方法定义上使用@ModelAttribute注解:SpringMVC在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute的方法
    在方法的入参前使用@ModelAttribute注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参将方法入参对象添加到模型中
  6. @RequestParam
    在处理方法入参处使用,可以把请求参数传递给请求方法
  7. @PathVariable
    绑定URL占位符到入参
  8. @ExceptionHandler
    注解到方法上,出现异常时会执行该方法
  9. @ControllerAdvice
    使用一个Controller成为全局的异常处理类,类中使用@ExceptionHandler注解的方法 可以处理所有Controller发生的异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值