96SEO 2026-02-19 19:41 17
那么RestController到底是干嘛的呢RequestMapping

如何接收来自请求中的querystryingRequestParamRequestMapping(/m9/{userId}/{name})
首先想要知道什么是SpringMVC我们就要先知道它的意思首先什么是MVC呢MVC即
模型视图控制器其实SpringMVC全名应该叫做SpringWebMVC它其实是基于servlet来构建的一个原始web框架从一开始就包含在了spring框架中。
第二个它是基于servlet的api构建出的一个框架什么是模型、视图、控制器
模型视图控制器其实是我们软件架构模式中的一种它把软件系统分为了这三个部分我们来分别进行解析一下
Model模型是应用程序中负责存取程序和数据逻辑的部分一般是在数据库中负责数据的存取
Controller(控制器是应用程序中负责用户交互的部分通常控制器负责从视图中读取用户需要的数据并返回给用户。
View视图是应用程序中用来显示出数据的部分通常视图是依据模型数据创建的。
我们上面说到MVC其实是实现一个应用的一种架构那么SpringMVC呢其实就是对这种架构的具体实现也就是说MVC是一种思想SpringMVC是实现这种思想的其中一种方式
那么我们说了既然SpringMVC是一个web框架并且还是MVC架构的一种实现并且还是基于servlet的API创造出的那么我们代入一下学习Servlet的过程我们可以推测出他肯定也是获取连接并且根据连接请求建立与数据库的交互并且返回数据那么Servlet是根据WebServlet(“/xxx”)来进行解析连接的那么SpringMVC是怎么使用的呢我们来看一下。
我们来看一下映入眼帘中的第一个让我们懵逼的东西那就是这个类上的注解RestController我们接下来就来解释一下这个注解
什么是RestController呢他是一个注解或者说叫做组合注解那么我们先搞懂一个概念什么是注解
我们可以类比于注释的概念去理解这两者最大的区别就是注释主要是给人看的而注解是给机器看的比如说我们在学习多态那里的时候如果细心的同学应该在重写了父类的方法子类方法中见到过Override这个注解这个注解的作用就是告诉编译器我的
这个方法是重写了父类的方法那么当编译器看到这个注解的时候他会多做一些事情首先要做的就是要先看看你到底有没有重写父类的方法你要是没有写那你就是欺骗我的感情是渣男渣女人渣这时候编译器直接不留情面的给你来个报错。
那么专业些的说法是什么呢
注解是提供一种为程序元素设置元数据的方法理解起来还是一样的程序元素就是指接口、类、属性、方法这些都是属于程序的元素那啥叫元数据呢就是描述数据的数据(data
data)举个简单的例子系统上有一个sm.png文件这个文件才是我们真正需要的数据本身而这个文件的属性则可以称之为sm.png的元数据是用来描述png文件的创建时间、修改时间、分辨率等信息的这些信息无论是有还是没有都不影响它作为图片的性质都可以使用图片软件打开。
我们有了上面概念的基础我们再来说一下到底RestController是干嘛的他想告诉编译器什么大家不要急要想知道这个问题我们要先搞明白为什么说他是组合注解它组合了谁它组合
的就是Controller和ResponseBody两个注解的功能。
那么组合之后有什么功能呢RestController注解的类接下来类中的方法返回的数据都是json数据也就是说当我们使用了RestController这个注解之后我们就不需要在要返回json数据的方法中添加ResponseBody注解了。
com.example.test_spring2.controller;import
org.springframework.boot.SpringApplication;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;RestController
这一次我们加入了新的方法和注解那就是RequestMapping那么接下来我们再次来学习一下这个注解
这个注解的作用是什么呢这个注解的作用我们可以参考一下WebServlet这个注解我们知道WebServlet这个注解是为了映射连接的说白了我们想要访问被这个注解修饰的方法就必须要输入这个注解中的值作为url那么RequestMapping也一样也是为了去进行地址映射的那么这个注解除了修饰方法之外还能修饰类吗答案是可以的。
那么我们来写一个代码试试把
com.example.test_spring2.controller;import
org.springframework.boot.SpringApplication;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;RestController
{RequestMapping(sayHiIicll)public
http://127.0.0.1:8080/sayicll/sayHiIicll也就是说我们需要先将描述类的那层RequestMapping写在前面然后写描述方法的RequestMapping此时可能就会用同学有疑问既然这样子的话那我发送什么请求可以被接收呢我们来测试一下就可以了这里我们使用的软件是postman
这里我们发现无论是get还是post请求我们都能发送别接受其返回那么这时候可能会用同学有疑问那么如果我就是想要让他特定的接收其中一个请求怎么办呢当然也可以,这就需要用到method了如下
这就表示他只能使用post进行那么还有别的形式吗也是有的如下代码我们来构建一下请求
MVC;}PostMapping(hiIicll)public
}那么如上这个注解就可以帮助我们这个方法只能接收post请求那么我们按照相同的思路就能猜测到肯定有个注解叫做GetMapping那么这个注解肯定就是帮助我们的方法只能接收Get请求了。
namename;}有了上面的基础我们来尝试一下接收来自请求中querystring中的参数这里的参数如何获取呢其实也很简单就是保证我们这个方法中的参数和我们querystring中的参数一致这样spring可以帮助我们自动匹配那么我们来看一下结果验证一下吧。
这里我们发现我们只需要做到前端的querystring和后端方法中设置的参数名一致就可以保证我们的请求序列中的参数被准确的接收到了。
那么假如说我不希望和前端的保持一致呢也就是我如何才能跟前端发给我的参数名称进行重命名呢这时候就需要学习到一个新的注解了。
我们来解释一下RequestParam这个注解这个注解的作用就是重命名前端传来的参数用法是如何呢我们来看一下代码
那么这时候我们来思考一个问题那就是这里有什么不同呢其实很明显的一个就是我们的代码中原来返回的是name现在返回的参数是username了其实这就是因为name是前端发送给我们的数据参数username才是我们后端自己命名的参数那么你想在后端代码中使用这个值你肯定用的是自己定义的参数才对嘛。
此外我们需要注意的是这样写的话这个name就是一个必传参数也就是说必须要有这个name值才可以那么如果我不想设置这个参数呢
nameusername;}这里我们只需要设置一下requestfalse就可以了。
RequestMapping(“/m9/{userId}/{name}”)
这里我们想一下一些url的一些我们需要的属性可能即不在query
string中也不在body中而是在url中那么这时候我们该怎么办呢这里
RequestMapping给我们提供了更多的用法也就是上面的那种我们只需要将我们需要的参数提前在
RequestMapping中设置好就可以了此外我们还需要搭配着另外的一个属性PathVariable
RequestMapping(/m9/{userId}/{name})public
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback