SpringMVC-基本详解

文章目录

    • [1 MVC](#1 MVC)
      • [1.1 说明](#1.1 说明)
      • [1.2 MVC职责](#1.2 MVC职责)
    • [2 SringMVC](#2 SringMVC)
      • [2.1 介绍一下SpringMVC](#2.1 介绍一下SpringMVC)
      • [2.2 客户端向服务器发送请求方式](#2.2 客户端向服务器发送请求方式)
      • [2.3 服务端接收参数的方式](#2.3 服务端接收参数的方式)
      • [2.4 常用注解](#2.4 常用注解)
      • [2.5 常见的错误状态码](#2.5 常见的错误状态码)
    • [3 POJO](#3 POJO)
      • [3.1 什么是POJO](#3.1 什么是POJO)
      • [3.2 定义说明](#3.2 定义说明)

1 MVC

1.1 说明

​ MVC是一种软件开发的设计模式,其目的就是为了降低项目中各个模块间的耦合度,提高代码的可维护性和可扩展性。

1.2 MVC职责

  • M:Model模型层,表示应用程序中的数据和数据相关的逻辑吧,比如:查询数据库、验证用户输入、更新数据库等等,可以使用POJO类或者实体类表示。
  • V: View视图层,负责呈现数据,通常是由网页、图片等组成,把Model中的数据展示给用户。
  • C: Controller控制器层,负责处理用户请求返回响应给客户端。

2 SringMVC

2.1 介绍一下SpringMVC

​ SpringMVC是Spring Framework中一个重要的Web框架,它是使用一种MVC(Model - View - Controller)架构模式实现Web应用的方式。

​ SpringMVC的核心组件DispathcerServlet,用于将客户端的请求映射到控制器,并使用视图技术呈现响应。

​ 在SpringMVC中,Controller充当的是中央处理器的角色,提供了进行请求处理的方法。SpringMVC的目标是为了简化Web的开发。

2.2 客户端向服务器发送请求方式

  1. 浏览器地址栏
  2. html页面中的超链接:<a href="xxx"></a>
  3. form表单发送
  4. html页面中通过 js 发送

2.3 服务端接收参数的方式

  1. 声明参数接收

    当参数的数量小于3个时,建议使用声明参数方式接收

    java 复制代码
    public int xxx(String username, Integer age){
        
    }
  2. 声明POJO类接收

    当参数的数量较多时,使用此种方式接收

    java 复制代码
    public int xxx(UserLoginDTO userLoginDTO){
        
    }

2.4 常用注解

  1. @Controller

    将类标记为控制器,用于接收请求并处理请求的方法

  2. @Responsebody

    将方法的返回值返回给客户端

  3. @RestController

    复合注解,相当于 @Controller@Responsebody 的组合,使用它的类和方法中所有的返回值都会被返回给客户端

  4. @RequestMapping

    用于将HTTP请求映射到控制器的方法上,可以用于类和方法之上。

    在SpringMVC的@RequestMapping注解中,可以通过 method 属性来限制请求方法,比如:

    java 复制代码
    @RequestMapping(value="/v1/user/login",method="RequestMethod.POST")
    public int login(){
        
    }
    • @GetMapping("/v1/users/login") :处理GET请求
    • @PostMapping("/v1/users/login"):处理POST请求
    • @PutMapping("/v1/users/login"): 处理PUT请求
    • @DeleteMapping("/v1/users/login") :处理DELETE请求

    注意:在类上使用@RequestMapping(),在方法上使用限制请求方式的注解;如果请求方法和对应的注解不匹配,则会显示405状态码,比如使用@GetMaping注解,但是客户端发送了一个POST请求,显示405。

  5. @Mapper

    MyBatis框架中的注解,用于标识一个接口是MyBatis 的Mapper 接口

  6. @MapperScan

    MyBatis框架中的注解,用于指定Mapper接口所在的包,并让MyBatis框架自动扫描这些接口,从而生成Mapper的实现类

    java 复制代码
    @Configuration
    @MapperScan("cn.tedu.xxx.mapper1")
    @MapperScan("cn.tedu.xxx.mapper2")
    public class MyBatisConfig{
        
    }
  7. @Autowired

    Spring框架中的注解,用于自动装配 bean

2.5 常见的错误状态码

  1. 404状态码

    • 当请求的URL地址没有找到对应的资源或者处理器方法时,会返回404状态码

    • 解决

      • 确认请求的地址是否正确
      • 检查静态资源的位置,或者Controller中的 @RequestMapping
  2. 405状态码

    控制器方法的请求映射与客户端发起的请求方法不匹配。例如 @PostMapping 注解映射了一个GET请求方法

  3. 500状态码

    服务器错误,根据终端报错调整mvc的代码

  4. 400状态码

    Bad Request,客户端发送了错误的参数

3 POJO

3.1 什么是POJO

​ Plain Ordinary Java Object:简单的Java对象,也就是没有继承任何类或实现任何接口的简单 Java 对象,也不依赖于其他复杂的框架或技术,POJO 对象通常包含了纯粹的数据和简单的业务逻辑,是一种用于简化 Java 应用程序开发的编程模型。是entity实体类、VO(Value Object或View Object)视图对象、DTO(Data Transfer Object)数据传输对象 这些对象的总称。

3.2 定义说明

  • entity实体类作用

    用来和数据库中的表字段一一对应的,比如UserEntity(id,username,password,nickname);

  • DTO作用

    用来接收客户端传递给服务器的数据的,比如:UserLoginDTO(username,password) 实现登录功能,客户端向服务器端传递数据;

  • VO作用

    用来处理服务器响应给客户端的数据的,比如:UserListVO(id,username,nickname) 登录成功后的列表页显示当前用户信息。

相关推荐
阿伟*rui1 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel
XiaoLeisj3 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck3 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei3 小时前
java的类加载机制的学习
java·学习
Yaml45 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~5 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616885 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
aloha_7896 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
记录成长java6 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
睡觉谁叫~~~6 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust