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) 登录成功后的列表页显示当前用户信息。

相关推荐
没书读了28 分钟前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·35 分钟前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic1 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王1 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康1 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
qq_17448285751 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神2 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_327342732 小时前
Java实现离线身份证号码OCR识别
java·开发语言
阿龟在奔跑3 小时前
引用类型的局部变量线程安全问题分析——以多线程对方法局部变量List类型对象实例的add、remove操作为例
java·jvm·安全·list
飞滕人生TYF3 小时前
m个数 生成n个数的所有组合 详解
java·递归