java框架高频面试题2(Spring MVC面试题)

目录

一、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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值