【Spring框架】SpringMVC

什么是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")
@ResponseBody

public 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";
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_61341342/article/details/132037459