当前位置: 首页 > news >正文

【Spring框架】SpringMVC

目录

  • 什么是Spring MVC
  • 实现客户端和程序之间的“连接”
    • 1.1 @RequestMapping
    • 1.2@GetMapping
    • 1.3@PostMapping
  • 获取参数
    • 2.1.1 获取单个参数
    • 2.1.2 获取多个参数
    • 2.1.3 获取对象
    • 2.2 后端参数重命名
    • 2.3 @RequestBody 接收JSON对象
    • 2.4 获取URL中参数@PathVariable
    • 2.5 上传⽂件@RequestPart
    • 2.6 获取Cookie/Session/header
  • 返回数据
    • 请求转发或请求重定向

什么是Spring MVC

Spring MVC 特性:
1.Spring MVC 是一个Web框架。
2.Spring MVC 是基于Servlet API 构建的。

MVC是Model View Controller 的缩写,它是软件工程中的一种软件框架模式,它把软件系统分为模型、视图和控制器三个基本部分。

MVC执行流程:
1.用户的请求首先先到Controller。
2.Controller将请求转发给Model。
3.Model处理业务并将数据结果给Controller。
4.Controller会将数据给View引擎。
5.View转换数据生成给最终用户。

在这里插入图片描述
MVC 是⼀种思想,⽽ Spring MVC 是对 MVC 思想的具体实现。
现在绝⼤部分的 Java 项⽬都是基于 Spring(或 Spring Boot)的,⽽ Spring 的核⼼就是 Spring MVC。

实现客户端和程序之间的“连接”

1.1 @RequestMapping

@RequestMapping是 Spring Web 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的。
在这里插入图片描述
在这里插入图片描述

1.2@GetMapping

@GetMapping:实现HTTP连接,但只支持GET类型的请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3@PostMapping

@PostMapping:实现HTTP连接,但只支持POST类型的请求
在这里插入图片描述

获取参数

2.1.1 获取单个参数

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.1.2 获取多个参数

在这里插入图片描述
在这里插入图片描述

2.1.3 获取对象

package com.example.demo.model;import lombok.Data;@Data
public class User {private int id;private String name;private String password;private int age;
}
package com.example.demo.controller;import com.example.demo.model.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {@RequestMapping("/add")public User add(User user) {return user;}
}

在这里插入图片描述

2.2 后端参数重命名

在这里插入图片描述
在这里插入图片描述

2.3 @RequestBody 接收JSON对象

在这里插入图片描述

在这里插入图片描述

2.4 获取URL中参数@PathVariable

在这里插入图片描述
在这里插入图片描述

2.5 上传⽂件@RequestPart

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.6 获取Cookie/Session/header

获取Cookie

/*** 获取 Cookie* @param ck* @return*/@RequestMapping("/getcookie")public String getCookie(@CookieValue("java")String ck) {return ck;}

在这里插入图片描述
获取Session

/*** 获取 Session** @param name* @return*/@RequestMapping("/get_sess")public String getSess(@SessionAttribute(required = false, value = "SESSION_KEY") String name) {return name;}

在这里插入图片描述
获取header

@RequestMapping("/header")
@ResponseBodypublic String header(@RequestHeader("User-Agent") String userAgent) {return "userAgent:"+userAgent;
}

返回数据

请求转发或请求重定向

forward VS redirect
return 不但可以返回⼀个视图,还可以实现跳转,跳转的⽅式有两种:
forward 是请求转发;
redirect:请求重定向。
// 请求重定向
@RequestMapping("/index")
public String index(){return "redirect:/index.html";
}// 请求转发
@RequestMapping("/index2")
public String index2(){return "forward:/index.html";
}

在这里插入图片描述

http://www.lryc.cn/news/105067.html

相关文章:

  • HDFS中namenode安全模式
  • blender凹凸感和置换形变
  • 力扣 343. 整数拆分
  • 【JavaWeb】正则表达式
  • Vue中常用到的标签和指令
  • C++设计模式之访问者模式
  • Java8的stream常用的操作
  • 传统计算机视觉
  • 13-3_Qt 5.9 C++开发指南_基于QReadWriteLock 的线程同步
  • opencv04-掩膜
  • python解析帆软cpt及frm文件(xml)获取源数据表及下游依赖表
  • TypeScript
  • 解决启动vue前端报错:npm ERR! Missing script: “serve“
  • 数据结构 | 线性数据结构——列表
  • 【ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或)】
  • 在CSDN学Golang场景化解决方案(EFK分布式日志系统方案)
  • MySQL篇
  • 图数据库Neo4j学习四——Spring Data NEO
  • UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号
  • Spring Boot实践五 --异步任务线程池
  • <C语言> 动态内存管理
  • 【ASPICE】:学习记录
  • 图论--最短路问题
  • go 结构体 - 值类型、引用类型 - 结构体转json类型 - 指针类型的种类 - 结构体方法 - 继承 - 多态(interface接口) - 练习
  • 盘点16个.Net开源项目
  • 记录对 require.js 的理解
  • minio-分布式文件存储系统
  • Kindling the Darkness: A Practical Low-light Image Enhancer论文阅读笔记
  • AcWing 4575. Bi数和Phi数
  • 《Federated Unlearning via Active Forgetting》论文精读