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

SpringMVC-基本详解

文章目录

    • 1 MVC
      • 1.1 说明
      • 1.2 MVC职责
    • 2 SringMVC
      • 2.1 介绍一下SpringMVC
      • 2.2 客户端向服务器发送请求方式
      • 2.3 服务端接收参数的方式
      • 2.4 常用注解
      • 2.5 常见的错误状态码
    • 3 POJO
      • 3.1 什么是POJO
      • 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个时,建议使用声明参数方式接收

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

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

    public int xxx(UserLoginDTO userLoginDTO){
        
    }
    

2.4 常用注解

  1. @Controller

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

  2. @Responsebody

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

  3. @RestController

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

  4. @RequestMapping

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

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

    @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的实现类

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


http://www.kler.cn/news/284556.html

相关文章:

  • Java经典框架之MyBatis
  • 机器人外呼的具体操作步骤是怎样的?
  • 避雷!避雷top!杭州拱墅金地·威新科技大厦
  • 斯坦福公开课:CS224W-Machine Learning with Graphs | 2021 课程笔记
  • 【读点论文】Scene Text Detection and Recognition: The Deep Learning Era
  • 【人工智能】项目案例分析:使用TensorFlow进行大规模对象检测
  • 如何打开终端?
  • Linux主要目录速查表:
  • TQRFSOC开发板47DR ADC输入采集测试(二)
  • 贪心算法---根据身高重建队列
  • 什么是 One-Hot 编码?
  • 音视频——RTSP流媒体传输技术介绍及抓包解析
  • 【C++从练气到飞升】17---set和map
  • Vue知识大全【查漏补缺】
  • 【书生3.6】MindSearch 快速部署
  • 深入解析多商户商城系统源码:如何开发直播商城小程序?
  • 知识产权案件中的消费者问卷调查证据
  • windows下载安装Node.js 并切换镜像地址
  • 数据结构与算法 第5天(树和二叉树)
  • 使用 OpenCV 组合和缩放多张图像
  • 【C++】避开 C 语言的格式化输出陷阱:掌握 printf、sprintf、snprintf、fprintf、vsprintf
  • 使用 pnpm workspace 和 standalone 模式构建 Next.js 的 Docker 镜像
  • ceph rgw reshard (by quqi99)
  • Ubuntu 24.04 中安装网易邮箱大师
  • JVM下篇:性能监控与调优篇-02-JVM监控及诊断工具-命令行篇
  • mybatisplus + oracle + spring boot遇到的一些问题
  • python基础学习(最终篇)
  • Unclutter - 苹果电脑(Mac)桌面文件笔记剪贴板管理工具
  • jenkins如何生成报告并查看报告,如何安装allure插件
  • MySQL-基础篇-事务(事务简介、事务操作、事务的四大特性、并发事务引发的问题、事务的隔离级别)