[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
相关推荐
XS0301064 分钟前
Java基础笔记(一)
java·笔记·python
程序员老邢6 分钟前
【产品底稿 05】商助慧 V1.1 里程碑:RAG 文章仿写模块全链路实现
java·spring boot·程序人生·ai·milvus
Java面试题总结24 分钟前
Spring AI 核心架构、抽象模型与四大核心组件设计精髓
人工智能·spring·架构
消失的旧时光-194324 分钟前
Spring Boot 实战(三):Service 分层 + 统一返回 + 异常处理(工程级写法)
java·spring boot·接口·解耦
云烟成雨TD25 分钟前
Spring AI Alibaba 1.x 系列【20】MessagesAgentHook 、MessagesModelHook 相关实现类
java·人工智能·spring
霸道流氓气质27 分钟前
SpringBoot中集成LangChain4j实现集成阿里百炼平台进行AI对话记忆功能和对话隔离功能
java·人工智能·spring boot·langchain4j
XS03010632 分钟前
Java 基础笔记(二)
java·笔记·python
papaofdoudou35 分钟前
AMD-V 嵌套分页白皮书翻译
java·linux·服务器
海寻山39 分钟前
Java 泛型 (Generic) 入门到精通:语法 + 原理 + 实战 + 避坑
java·windows·python
艾莉丝努力练剑43 分钟前
【Linux线程】Linux系统多线程(七):<线程同步与互斥>线程同步(下)
java·linux·运维·服务器·c++·学习·操作系统