SpringMVC结构简介及常用注解汇总
作者:柠檬时间 发布时间:2023-10-25 09:16:59
目录
MVC结构简介
SpringMVC简介
SpringMVC执行流程
常用注解
1. @Controller
2. @ResponseBody
3. @RestController
4. @RequestMapping
5. @PathVariable
6. @RequestParam
7. @RequestHeader
8. @RequestHeader
MVC结构简介
Model(模型):数据模型,提供要展示的数据,因此包含数据和行为。现在一般分离为数据层Dao和服务层Service,提供了模型数据查询和模型数据的状态更新等功能。
View(视图):负责进行模型的展示,一般指用户界面。
Controller(控制器):接受用户请求,并委托模型进行处理(状态改变),处理完返回模型数据给视图,交由视图进行展示。
SpringMVC简介
SpringMVC是SpringFramework的一部分,是Java实现MVC的轻量级Web框架。
Spring的web框架围绕DispatcherServlet调度Servlet进行设计,DispatcherServlet的作用是将请求分发到不同的处理控制器Controller。
SpringMVC与Spring无缝集成(使用SpringIoc和Aop),使用约定优于配置,能够进行简单junit测试,支持Restful风格,异常处理,数据映射, * 等等。
SpringMVC执行流程
用户发出请求,DispatcherServlet前置控制器接收并拦截请求
HandlerMapping处理器映射根据DispatcherServlet给予请求url查找handler
HandlerExecution表示具体的Handler,其主要作用是根据url查找对应控制器,将解析后的信息传递给DispatcherServlet
DispatcherServlet根据解析后的信息交由HandlerAdapter
HandlerAdapter按照信息把处理交予对应的Controller执行
Controller处理过后把处理信息如ModelAndView交还HandlerAdapter,HandlerAdapter再把视图逻辑或模型交还DispatcherServlet
DispatcherSerlvet再调用视图解析器ViewResovler对逻辑视图进行解析,解析过后再将最终视图结果呈现给用户
常用注解
1. @Controller
@Controller注解的控制器负责处理DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,再将该Model返回给对应的View进行展示。
2. @ResponseBody
@ResponseBody注解用于将Controller的方法返回的对象根据Http Request Header的Accept内容,通过适当的HttpMessageConverter转换为指定格式后,写入Response对象的body数据区。
3. @RestController
@Controller和@ResponseBody相加的作用。
4. @RequestMapping
@RequestMapping用于处理请求地址映射的注解,用于类或方法上。用于类上,表示类的所有响应请求的方法都是以该地址作为父路径。
@RequestMappping的常用参数是value和method,分别表示请求url,请求类型。method有GET,POST,PUT,DELETE四种选择,http只支持GET和POST,但SpringMVC适配了另外两种,在使用PUT和DELETE请求时,后台会将其转换成POST。
5. @PathVariable
@PathVariable能够映射url绑定的占位符,因此,我们可以把url中的{xxx}占位符绑定到操作方法的参数@PathVariable{"xxx"}中,增加了restful url构造的灵活性。
6. @RequestParam
@RequestParam用于处理请求参数,使用@PathVariable可以获取请求参数,这是一个Rest风格的URL,使用炸占位符的方式携带一个参数,但是它并不是真正意义的请求参数。
@RequestParam标识的参数需要url请求时一定携带,要不然就报错,除非@RequestParam的参数required设为false。
7. @RequestHeader
@RequestHeader和@RequestParam的用法相同,它能够获取请求头的信息并注入目标方法的参数中
8. @RequestHeader
@CookieValue也和和@RequestParam的用法相同,它是用来获取cookie值的,它能够将获取cookie值并注入目标方法的参数中
来源:https://segmentfault.com/a/1190000039409581


猜你喜欢
- 现在很多Android应用在首次安装完都会有指引如何使用该应用的某些功能的指引界面,这样会获得很好的用户体验,能够帮助用户更好使用应用的某些
- 蓝牙,时下最流行的智能设备传输数据的方式之一,通过手机app和智能设备进行连接,获取设备上的测量数据,我们生活中随处可见的比如蓝牙智能手环,
- 背景项目中要实现横向列表的无限循环滚动,自然而然想到了RecyclerView,但我们常用的RecyclerView是不支持无限循环滚动的,
- 最近做了关于在Android设备上外接扫码的项目,在此记录一下关于Android USB扫码枪获取内容的问题首先我这边使用是USB HID的
- 迭代器模式,一直没用过,也不会用。恰巧MyBatis框架中也使用到了迭代器模式,而且看起来还比较简单,在以后的工作中,若有需要咱们可模仿它的
- SpringBoot加载application.properties配置文件的坑事情的起因是这样的一次,本人在现场升级程序,升级完成后进行测
- Android Build类的详解及简单实例一、类结构:java.lang.Object? android.os.Build二、类概述:从系
- 这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件。一、简介Add sleuth to
- 一、创建地形1、GameObject ->3D Object-> Terrain,创建带有地形属性的平面2、Terrain-〉最
- c++换行符有哪些\n 换行,光标移到下一行的开头;endl,把缓冲槽的内容输出到控制台;\r 回车,光标移到当前行的开头,不会换到下一行,
- 一、安装插件1.1直接用离线安装,将安装包拖到 IDEA窗口就安装好了,需要重启IDEA生效 (推荐)1.2 直接在idea上下JFormD
- 一个android文件的Uri地址一般如下: content://media/external/images/media/62026这是一张
- 前言XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场
- 本文实例为大家分享了好看的android音量旋钮,供大家参考,具体内容如下效果图:实现思路,用的自定义的控件,图片和按钮都是自己绘制的,并且
- servlet、filter、listener、interceptor之间的区别和联系一、概念1.servlet:servlet是一种运行服
- System.out.print("\b") 会在控制台下往回删掉一个字符,如果你想回删多个字符就打印多个 "
- 关于[Cannot determine value type from string ‘xxx’]的
- 本文实例为大家分享了Android仿IOS UIAlertView对话框的具体代码,供大家参考,具体内容如下显示效果:我在参考链接中看到了作
- 什么是指纹解锁技术根据人的指纹来验证是否能够解锁的技术,类似于通过输入密码来解锁,都是通过一定的数字特征来解锁。指纹解锁技术原理理解首先说明
- 假如我们有一张banner_item表,现需要通过banner_id查出所有数据(查询List)@Datapublic class Bann