[Spring]Spring MVC 请求和响应及用到的注解

文章目录

  • [一. Maven](#一. Maven)
  • [二. SpringBoot](#二. SpringBoot)
  • [三. Spring MVC](#三. Spring MVC)
  • [四. MVC注解](#四. MVC注解)
    • [1. @RequestMapping](#1. @RequestMapping)
    • [2. @RequestParam](#2. @RequestParam)
    • [3. @PathVariable](#3. @PathVariable)
    • [4. @RequestPart](#4. @RequestPart)
    • [5. @CookieValue](#5. @CookieValue)
    • [6. @SessionAttribute](#6. @SessionAttribute)
    • [7. @RequestHeader](#7. @RequestHeader)
    • [8. @RestController](#8. @RestController)
    • [9. @ResponseBody](#9. @ResponseBody)
  • [五. 请求](#五. 请求)
  • [六. 响应](#六. 响应)

一. Maven

Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通

过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。

⼤⽩话: Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包

二. SpringBoot

Spring Boot 是为了快速开发 Spring ⽽诞⽣的, Spring Boot 具备:

• Spring Boot 提供了启动添加依赖的功能, 可以快速集成框架.

• 内置web服务器,⽆需配置 Tomcat 等 Web服务器,直接运⾏和部署程序.

• 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发.

• ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点

三. Spring MVC

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的

正式名称"Spring Web MVC"来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring

MVC".

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分

为模型、视图和控制器三个基本部分

View(视图) 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源.

Model(模型) 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.

Controller(控制器 )可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型

来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型

Spring MVC 是⼀个实现了 MVC 模式的 Web 框架

Spring Boot 只是实现Spring MVC的其中⼀种⽅式⽽已

四. MVC注解

1. @RequestMapping

用于路由映射

是类注解也是方法注解

前端可以通过.../request/param1 来访问, 传递参数或者接收返回的参数

可以指定前端传递数据的方法:

2. @RequestParam

用于前端和后端的映射

前端传参的数据名和后端接收的数据名不匹配

并且可以指定是否是必传项, 不传会报错

将前端的userName映射到后端的name上

3. @PathVariable

@PathVariable 翻译:路径变量 获取URL中的路径articleId作为参数传递

4. @RequestPart

用于映射文件

5. @CookieValue

获取cookie中的某个值

6. @SessionAttribute

获取session中的某个值

7. @RequestHeader

获取header中的某个值

8. @RestController

响应的类型是数据

是类注解, 也是方法注解, 修饰类时, 表示类中所有方法都返回的是数据

@RestController = @Controller + @ResponseBody

(@Controller后续介绍)

9. @ResponseBody

方法注解, 表示此方法, 返回的是数据

五. 请求

  1. 传递数据

    前端传递数据时, 最好使用包装类来接收

    如果前端没有传递数据, 会默认为null, 而不会报错

    如果传入的数据的名字和参数名字不匹配, 使用@RequestParam

  2. 传递对象

    直接通过url或者body的方式传递和对象中对应属性的名字的内容即可

  3. 传递数组

    传递的名字用数组名即可, 传多条相同名字的数据

  4. 传递集合

    传多条相同名字的数据, 默认为数组, 接收不到集合, 需要用@RequestParam

  5. 接收url路径作为参数

    需要搭配@PathVariable 翻译:路径变量 获取URL中的路径articleId作为参数传递

  6. 传递文件

    MultipartFile是Spring框架提供的一个接口,用于处理HTTP请求中的文件上传

    MultipartFile提供transferTo方法, 将MultipartFile转成File

    需要搭配@RequestPart方法 用于映射文件

  7. 获取Cookie

    方法一: 使用HttpServletRequest

    HttpServletRequest 这个类可以获取到请求中的所有东西

    方法二:使用@CookieValue

  8. 创建session

    方法一:使用HttpSerletRequest

    方法二: 使用HttpSession

  9. 获取session

    方法一: 使用HttpSerletRequest

    方法二: 使用HttpSession

    方法三: 使用@SessionAttribute

  10. 获取header

    方法一: 使用HttpServletRequest

    方法二: 使用@RequestHeader

六. 响应

类使用@Controller修饰, 默认返回的是视图

如果使用@RestController修饰, 那么返回数据

@RestController = @Controller + @ResponseBody

  1. 响应html视图
  2. 响应数据
    类使用@Controller修饰
  3. 响应html数据
  4. 响应JSON数据
    返回对象即可, Spring会转成json
  5. 设置响应状态码
    使用HttpServletResponse
相关推荐
七星静香18 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员19 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU19 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie622 分钟前
在IDEA中使用Git
java·git
Elaine20239138 分钟前
06 网络编程基础
java·网络
G丶AEOM39 分钟前
分布式——BASE理论
java·分布式·八股
落落鱼201340 分钟前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀41 分钟前
LRU缓存算法
java·算法·缓存
镰刀出海44 分钟前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
阿伟*rui3 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel