springboot和vue:三、web入门(spring-boot-starter- web+控制器+路由映射+参数传递)

2023-09-17 19:21:12

spring-boot-starter- web

  • Spring Boot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。
  • 创建SpringBoot项目勾选Spring Web选项后,会自动将spring-boot-starter- web组件加入到项目中。
  • webmvc为Web开发的基础框架,json为JSON数据解析组件,tomcat为自带的容器依赖。

在这里插入图片描述

控制器

  • Spring Boot提供了@Controller和@RestController两种注解来标识此类负责接收和处理HTTP请求。
  • 如果请求的是页面和数据,使用@Controller注解即可;如果只是请求数据,则可以使用@RestController注解。

在这里插入图片描述

@Controller和@RestController

  • 以下示例中返回了hello页面和name的数据,在前端页面中可以通过${name}参数获取后台返回的数据并显示。
  • @Controller通常与Thymeleaf模板引擎结合使用。
  • 默认情况下,@RestController注解会将返回的对象数据转换为JSON格式。

在这里插入图片描述

路由映射/@RequestMapping

  • @RequestMapping注解主要负责URL的路由映射。它可以添加在Controller类或者具体的方法上。
  • 如果添加在Controller类上,则这个Controller中的所有路由映射都将会加上此映射规则,如果添加在方法上,则只对当前方法生效。
  • @RequestMapping注解包含很多属性参数来定义HTTP的请求映射规则。常用的属性参数如下:
    1. value: 请求URL的路径,支持URL模板、正则表达式
    2. method: HTTP请求方法
    3. consumes: 请求的媒体类型(Content-Type),如application/json
    4. produces: 响应的媒体类型
    5. params,headers: 请求的参数及请求头的值

路由映射中的正则表达式

  • 符号“*”匹配任意字符,符号“**”匹配任意路径,符号“?”匹配单个字符。
  • 有通配符的优先级低于没有通配符的,比如/user/add.json比/user/*.json优先匹配。
  • 有“**”通配符的优先级低于有“*”通配符的。

参数传递

如果不是很清楚url和form-data和requestbody的区别,可以先去看别的博客:https://blog.csdn.net/qq_44695727/article/details/112277632和https://www.cnblogs.com/wjun0/p/11569716.html。

@RequestParam

@RequestParam将请求参数绑定到控制器的方法参数上,接收的参数来自HTTP请求体或请求url的QueryString,当请求的参数名称与Controller的业务方法参数名称一致时,@RequestParam可以省略。

@PathVaraible:

用来处理动态的URL,URL的值可以作为控制器中处理方法的参数

@RequestBody

接收的参数是来自requestBody中,即请求体。一般用于处理非Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/jsonapplication/xml等类型的数据

更多推荐

Springboot 实践(21)服务熔断机制

在微服务架构中,服务众多,通常会涉及到多个服务层的调用,一旦基础服务发生故障,很可能会导致级联故障,继而造成整个系统不可用,这种现象被称为服务雪崩效应。服务熔断引入熔断器概念,熔断器如果在一段时间内侦测到许多类似错误,就会强迫其以后的多个调用快速失败,不在访问远程服务器,从而防止应用程序不断地尝试执行可能会失败的操作,

sed & awk使用简介

简介本文主要介绍Linux系统的两个神级工具:sed和awk,他们是Linux高手们必备的技能,很值得我们去研究的东西。这里是我在网上书上收集的相关资料,因为这两个工具很有名也很重要,所以这些资料会帮助我更好的了解和熟悉它们。什么是sed在《sedandawk》一书中(1.2AStreamEditor)的解释是:Sed

Text-to-SQL小白入门(六)Awesome-Text2SQL项目介绍

项目介绍项目地址GitHub地址:GitHub-eosphoros-ai/Awesome-Text2SQL:CuratedtutorialsandresourcesforLargeLanguageModels,Text2SQL,andmore.项目首页欢迎大家围观参与、使用、贡献。项目理念这个项目主要收集了针对大型语言

vite和webpack的区别

vite和webpack的区别1、前言2、Webpack2.1Webpack简述2.2Webpack常用插件3、Vite3.1Vite简述3.2Vite插件推荐4、区别4.1开发模式不同4.2打包效率不同4.3插件生态不同4.4配置复杂度不同4.5热更新机制不同5、总结1、前言Webpack和Vite是现代前端开发中非

笔记1.5:计算机网络体系结构

从功能上描述计算机网络结构分层结构每层遵循某个网络协议完成本层功能1.基本概念实体:表示任何可发送或接收信息的硬件或软件进程。协议是控制两个对等实体进行通信的规则的集合,协议是水平的。任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是垂直的。下一层协议的实现对上层的服务用户是透明的同系统的相

Mysql 数据库基础介绍

Mysql数据库基础介绍一、数据库介绍1.1、数据库的发展史1.1.1、文件管理系统的缺点1.1.2、数据库系统发展阶段1.3、DBMS数据库管理系统1.4、数据库管理系统的优点1.5、数据库管理系统的基本功能1.6、数据库系统的架构1.7、各种数据库管理系统1.7.1、层次数据库1.7.2、网状数据库1.7.3、RD

TCP/IP协议栈各层涉及到的协议

21/tcpFTP文件传输协议22/tcpSSH安全登录、文件传送(SCP)和端口重定向23/tcpTelnet远程连接80/tcpHTTP443/tcpHTTPS计算机各层网络协议五层:应用层:(典型设备:应用程序,如FTP,SMTP,HTTP)DHCP(DynamicHostConfigurationProtoco

动态规划问题

看一遍就理解:动态规划详解-什么样的问题可以考虑使用动态规划解决呢?如果一个问题,可以把所有可能的答案穷举出来,并且穷举出来后,发现存在重叠子问题,就可以考虑使用动态规划。比如一些求最值的场景,如最长递增子序列、最小编辑距离、背包问题、凑零钱问题等等,都是动态规划的经典应用场景。-动态规划的解题思路动态规划的核心思想就

面试:C++ 11 智能指针

查询内存泄露方法啥是内存泄露内存泄露在维基百科中的解释如下:在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。在C++中出现内存泄露的主要原因就是程

若依注解学习(一)@Log

@Log涉及到:Log,LogAspect,SecurityUtils,SysUser,SysOperLog,BusinessStatus,StringUtils,ServletUtilsAsyncManager,AsyncFactory,AddressUtils,IpUtils,RuoYiConfig,HttpUti

3D模型转换工具HOOPS Exchange如何实现OBJ格式轻量化?

什么是OBJ模型轻量化?OBJ格式是一种常用的三维模型文件格式,通常包含模型的顶点、法线、纹理坐标等信息,但有时候这些信息可能会使模型文件变得较大,不利于网络传输、加载和运行。OBJ(Object)模型轻量化是指对OBJ格式的三维模型数据进行优化和压缩,以减少模型文件的大小和内存占用,同时尽量保持模型的视觉质量和几何信

热文推荐