目录

一、spring MVC介绍

二、什么是spring MVC?

三、介绍下Spring MVC的执行流程

总结:SpringMVC框架的总结(常用注解和三大重点)

常用注解

(1)RestController注解

(2)RequestMapping注解:接受请求(非常重要)

(3)RequestParam注解:

(4)RequestBody注解

(5)PathVariable【重点】在以后的项目中使用很多(使用PathVariable注解获取RestFul风格的url中的数据)

第一重点:接受请求

第二重点:获取请求参数

第一种:“参数名=参数值&参数名=参数值&参数名=参数值”, get方式提交参数,以及表单提交(在url的?后面)

@RequestParam注解作用:

@RequestBody注解:

第二种:{参数名:参数值,参数名:参数值,参数名:参数值},  josn类型的参数,post方式提交参数,只能封装获取json类型的请求参数是在请求体里面。

第三重点:响应

实现步骤


一、spring MVC介绍

咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序. 使用Java语言基 本上都是开发B/S架构的程序,B/S架构又分成了三层架构。

三层架构 :

  • 表现层(controller):WEB层,用来和客户端进行数据交互的。表现层一般会采用MVC的设计模型
  • 业务层(service):处理公司具体的业务逻辑的
  • 持久层(dao):用来操作数据库的

MVC全名是Model View Controller 模型视图控制器,每个部分各司其职。

  • Model:数据模型,JavaBean的类,用来进行数据封装。
  • View:指JSP、HTML用来展示数据给用户
  • Controller:用来接收用户的请求,整个流程的控制器。用来进行数据校验等

二、什么是spring MVC?

三、介绍下Spring MVC的执行流程

  1. 用户通过客户端向服务端发起一个request请求,此请求会被前端控制器(DispatcherServlet)所拦截。
  2. 前端控制器请求处理映射器(HandlerMapping)去查找Handler,可以依据XML配置或注解去查找。处理映射器根据请求URL找到具体的处理器,生成处理器对象返回给前端控制器
  3. 前端控制器请求处理器适配器(HandlerAdapter)去执行相应的Controller,Controller执行完毕后会返回给处理器适配器一个ModelAndView对象。
  4. 前端控制器接收到ModelAndView后,选择一个合适的视图解析器对视图进行解析。解析后,会根据View视图信息匹配到相应的视图结果,反馈给前端控制器。
  5. 前端控制器收到View视图后,进行视图渲染,将模型数据填充到request域。
  6. 前端控制器向用户响应结果。
  1. 用户通过客户端向服务端发起一个request请求,此请求会被前端控制器(DispatcherServlet)所拦截。
  2. 前端控制器(DispatcherServlet):请求处理映射器(HandlerMapping)去查找Handler,可以依据XML配置或注解去查找。
  3. 处理映射器(HandlerMapping)根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成),并返回给前端控制器。
  4. 前端控制器(DispatcherServlet)请求处理器适配器(HandlerAdapter)去执行相应的Handler(常称为Controller)。
  5. 处理器适配器(HandlerAdapter)会调用并执行Handler处理器,这里的处理器指的是程序中编写的Controller类,也被称为后端控制    器。
  6. Controller执行完毕后会返回给处理器适配器(HandlerAdapter)一个ModelAndView对象,该对象中会包含View视图信息或包含    Model数据模型和View视图信息。
  7. 处理器适配器(HandlerAdapter)接收到Controller返回的ModelAndView后,将其返回给前端控制器。
  8. 前端控制器(DispatcherServlet)接收到ModelAndView后,选择一个合适的视图解析器(ViewReslover)对视图进行解析。
  9. 视图解析器(ViewReslover):解析后,会根据View视图信息匹配到相应的视图结果,反馈给前端控制器。
  10. 前端控制器收到View视图后,进行视图渲染,将模型数据(在ModelAndView对象中)填充到request域。
  11. 前端控制器向用户响应结果。

总结:SpringMVC框架的总结(常用注解和三大重点)

常用注解

(1)RestController注解

(2)RequestMapping注解:接受请求(非常重要)

(3)RequestParam注解

(4)RequestBody注解

(5)PathVariable【重点】在以后的项目中使用很多(使用PathVariable注解获取RestFul风格的url中的数据

  • 作用:

    用于绑定 url 中的占位符。 例如:请求 url 中 /delete/{id}, 这个{id}就是 url 占位符。 url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。

  • 属性:

    value: 用于指定 url 中占位符名称。 required:是否必须提供占位符。

保存
    传统:http://localhost:8080/user/save
    REST:http://localhost:8080/user                            POST方式    执行保存

更新
    传统:http://localhost:8080/user/update?id=1
    REST:http://localhost:8080/user/1                        PUT方式    执行更新   1代表id

删除    
    传统:http://localhost:8080/user/delete?id=1
    REST:http://localhost:8080/user/1                       DELETE方式    执行删除 1代表id

查询
    传统:http://localhost:8080/user/findAll
    REST:http://localhost:8080/user                          GET方式    查所有

传统:http://localhost:8080/user/findById?id=1
    REST:http://localhost:8080/user/1                       GET方式    根据id查1个

第一重点:接受请求

@RequestMapping:用于配置请求的映射路径

  • @PostMapping=@RequestMapping指定method为POST
  • @GetMapping,处理get请求
  • @PutMapping,处理put请求
  • @DeleteMapping,处理delete请求

第二重点:获取请求参数

第一种:“参数名=参数值&参数名=参数值&参数名=参数值”, get方式提交参数,以及表单提交(在url的?后面)

1.1 以单个参数接收: 在处理请求的方法中添加参数,保证方法的参数名和请求参数名一致就行 springmvc对一些常用的类型,内置有转换器

以对象接收

  • POJO对象,在处理请求的方法中添加一个POJO类型的参数,保证POJO中的参数名和要接收的参数名对应

  • Map对象(map的key就是参数名,map的value就是参数值只能是String类型) 必须在参数前添加上@RequestParam注解

  • 接收多个同名的请求参数,直接封装到List中,此时要在List类型的参数前添加RequestParam注解

@RequestParam注解作用

  1. 把请求中指定名称的参数给控制器中的形参赋值。

  2. 获取List、Map类型的请求参数必须添加

@RequestBody注解:

请求体: post方式的请求参数,get方式没有请求体

客户端传入给服务器端的请求参数一般分为两种:

1. formdata类型的请求参数,例如:"username=aobama&pwd=123&nickname=圣枪游侠",获取这类请求参数已经在前面详细讲解过了
2. json类型的请求参数,例如使用axios发送异步的post请求携带的请求参数,而RequestBody注解的作用就是将json类型的请求参数封装到POJO对象或者Map中

第二种:{参数名:参数值,参数名:参数值,参数名:参数值},  josn类型的参数,post方式提交参数,只能封装获取json类型的请求参数是在请求体里面。

第三重点:响应

该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如: json,xml 等,通过 Response 响应给客户端

  • 接收客户端的json类型的请求参数,封装到POJO对象中,使用ResponseBody注解
  • 将服务器端的对象,解析成json字符串,响应给客户端,可以使用ResponseBody注解或者使用@RestController
  1. 可以在类上添加@ResponseBody注解
  2. 可以将@Controller注解改成@RestController注解

实现步骤

  1. 添加jackson坐标
  2. 把什么对象转成json, 方法的返回值就是什么类型
  3. 在方法上面或者方法的返回值前面添加@ResponseBody

java框架高频面试题2(Spring MVC面试题)相关推荐

  1. java request 处理过程_小猿圈Java开发之从代码看spring mvc请求处理过程

    原标题:小猿圈Java开发之从代码看spring mvc请求处理过程 Java作为编程界的常青树,有自己生存的独到之处,小猿圈java讲师今天就分享一个关于从代码看spring mvc请求处理过程,通 ...

  2. 【Java学习路线之JavaWeb】Spring MVC框架入门教程

    文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...

  3. 【面试】Spring MVC面试题

    概述 什么是Spring MVC?简单介绍下你对Spring MVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离 ...

  4. java 时间格式化_彻底解决Spring mvc中时间的转换和序列化等问题

    痛点 在使用Spring mvc 进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8的新特性java.time包下的具体类型参数来直接接收. 我们使用含有java.time封装类型的 ...

  5. Spring MVC面试题

    目录 概述 什么是Spring MVC?简单介绍下你对Spring MVC的理解? Spring MVC的优点 核心组件 Spring MVC的主要组件? 什么是DispatcherServlet 什 ...

  6. java处理请求的流程_Java Spring mvc请求处理流程详解

    Spring mvc请求处理流程详解 前言 spring mvc框架相信很多人都很熟悉了,关于这方面的资料也是一搜一大把.但是感觉讲的都不是很细致,让很多初学者都云里雾里的.本人也是这样,之前研究过, ...

  7. java的人patch方法_java – Spring MVC PATCH方法:部分更新

    我有一个项目,我使用Spring MVC Jackson构建REST服务.让我们说我有以下java实体 public class MyEntity { private Integer id; priv ...

  8. java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示

    用户上传图片后 (头像 or 个人照片等) ,需要在页面上显示,现在提供一种显示方式. 后台采用spring mvc的架构 前台是html Java代码: @ResponseBody @Request ...

  9. ajax请求方式 问答题,java spring mvc面试题,九大常见问答题

    上次已经为大家介绍过java spring面试题,八大常见问答题的主要内容了,今天再来为大家介绍一些其他的常见问答题,一起来了解一下吧. 常见问答题如下: 1.springmvc的控制器是不是单例模式 ...

最新文章

  1. chord协议模拟实现_C#.NET和单片机串口通信实现监控单片机数字量输入继电器输出模拟量输入模拟量输出...
  2. 智能车联,一场「以人为核心」的智能化变革
  3. deform_conv_cuda windows编译
  4. Cisco路由器密码恢复方法
  5. (2) freemarker入门案例2
  6. 32位mips运算器logisim_很多网友问32位低功耗MCU设计
  7. GoLang的逃逸分析
  8. 微软加入反 Flash 阵营,新版 Edge 默认屏蔽 Flash
  9. 什么图用什么工具画?
  10. 1. COM编程——什么是组件
  11. 数字电路基础知识(二)
  12. 传感器实验——SHT20温湿度传感器
  13. matlab 中输入log就是ln吗?(ln就是log以e为底的对数)
  14. K8S在centeros中的部署
  15. bios基本输入输出系统
  16. 计算机系统采用终中断的目的是?
  17. 博学谷-数据分析matplotlib
  18. 【每日一个GitHub项目】GitHub中文排行榜
  19. 在一在二不在三(博弈论的诡计)
  20. r语言算巢式设计方差分析_应用统计学与R语言实现学习笔记(八)——方差分析...

热门文章

  1. 乱七八糟的C++面经
  2. 【网络工程师】<软考中级>IPV6网络技术
  3. 软工工程-课堂作业题
  4. onl_cgform_head拿到迁移的表
  5. ARM Cortex-M底层技术(2)—单片机的启动代码详解
  6. 软件开发实训(720科技)-----产品运营01
  7. 2009老百姓最关心的十大问题
  8. 安全攻防战丨能信安科技的安全统御之道
  9. 链接VPN后push GitHub代码注意事项
  10. 别再推荐使用 jsoncpp 了