IDEA搭建SpringMVC入门程序(2)——注解、属性、映射方式

发布时间:2026/11/2 13:41:10

IDEA搭建SpringMVC入门程序(2)——注解、属性、映射方式 接上一篇文章继续IDEA搭建SpringMVC入门程序11.注解1标注在方法上的注解上文中已经使用过Controller注解和RequestMapping注解我们在FirstController新增一个RequestMapping(/dog)//设置当前方法返回值类型为 String用于指定请求完成后跳转的页面publicvoidsayHello2(){System.out.println(访问到 sayHello2!);}那么如果想访问sayHello2这个方法访问路径就是下面这样http://localhost:8080/demo10/dog执行结果如下图注意浏览器报错404在这里是正常的因为上面的代码中我们并没有让它返回到某个jsp文件。2标注在类上的注解除了标注在方法上还可以直接标注在类上。比如下面这样我们右击Controller文件夹选择New—Java Class名字为SecondController初始代码如下package com.itheima.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;ControllerRequestMapping(/second)publicclassSecondController{RequestMapping(/say1)publicvoidsayHello3(){System.out.println(访问到 sayHello3!);}}我们重启tomcat,在浏览器中访问下面的路径http://localhost:8080/second/say1就可以看到控制台里正确打印出了信息。2.属性1value属性value属性是RequestMapping注解的默认属性当只有一个属性是则可以省略value本身。下面的两种写法都是一样的。RequstMapping(value/dog)RequestMapping(/dog)value也可以指定多个路径把路径封装成一个请求列表即可。创建一个新的方法RequestMapping(value{/addUser,/deleteUser})publicvoidcheckAuth(){System.out.println(执行系统的增删校验);}添加后项目代码如下重写运行tomcat,分别在浏览器里输入http://localhost:8080/demo10/second/addUserhttp://localhost:8080/demo10/second/deleteUser可以看到相同的内容被打印出来结果如下2method属性method指的是请求方式 一般有GET、POST、PUT、DELETE四种方式右击controller文件夹选择New—Java Class名称为MethodController参考代码如下packagecom.itheima.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;ControllerRequestMapping(/method)publicclassMethodController{//处理请求为GET的方式RequestMapping(methodRequestMethod.GET)publicvoidget(){System.out.println(get请求);}//处理请求为POST的方式RequestMapping(methodRequestMethod.POST)publicvoidpost(){System.out.println(post请求);}//处理请求为PUT的方式RequestMapping(methodRequestMethod.PUT)publicvoidput(){System.out.println(put请求);}//处理请求为GET的方式RequestMapping(methodRequestMethod.DELETE)publicvoiddelete(){System.out.println(delete请求);}}在浏览器里输入下面的地址浏览器默认就是get方式http://localhost:8080/demo10/methodIDEA控制台会输出下面的内容其他方式建议使用api工具进行请求。3 param属性params属性中定义的值可以将请求映射的定位范围缩小。当客户端进行请求时如果请求参数的值等于params属性定义的值则可以正常执行到的方法否则映射的方法不执行。注意实际开发中这种方式很少使用这种方式。右击controller文件夹选择New—Java Class名字为ParamsController参考代码如下packagecom.itheima.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;ControllerpublicclassParamsController{RequestMapping(value/params,paramsid1)publicvoidfindById(Stringid){System.out.println(idid);}}实现效果如下图可以看到如果填写id2是访问不到findById方法的3.映射方式1基于请求方式的URL路径映射GetMapping对应GET方式的请求PostMapping对应POST方式的请求PutMapping对应PUT方式的请求DeleteMapping对应DELETE方式的请求PatchMapping对应PATCH放到的请求如果使用基于请求方式的URL路径映射则简单修改一下即可比如原来是下面这样ControllerpublicclassParamsController{RequestMapping(value/dog,)publicvoidtest(){System.out.println(test);}}现在改成下面这样ControllerpublicclassParamsController{GetMapping(value/dog,)publicvoidtest(){System.out.println(test);}}GetMapping是RequestMapping(methodRequestMethod.GET)的缩写2基于Ant风格的URL路径映射?匹配单个字符*匹配任意数量字符不包括路径分隔符/**匹配任意层级的路径包括路径分隔符/代码风格如下RestControllerRequestMapping(/api/books)publicclassBookController{// 精确匹配 /api/books/details/123GetMapping(/details/{id})publicBookgetBookDetails(PathVariableLongid){// ...}// Ant风格: 匹配 /api/books/category/novel 或 /api/books/category/techGetMapping(/category/*)publicListBookgetBooksByCategory(){// ...}// Ant风格: 匹配 /api/books/search/任意内容GetMapping(/search/*/keyword)publicListBooksearchBooks(){// ...}// 多级路径匹配: 如 /api/books/files/2023/12/01/document.pdfGetMapping(/files/**)publicStringgetFile(){// ...}// 匹配单字符: /api/books/note/a 或 /api/books/note/bGetMapping(/note/?)publicStringgetNoteByChar(){// ...}}3基于RESTful风格的URL路径映射右击controller文件夹选择New—Java Class名字为UserController参考代码如下packagecom.itheima.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestMapping;ControllerRequestMapping(/users)publicclassUserController{GetMapping(/{id}/{name})publicvoidgetOrder(PathVariableStringid,// 用户IDPathVariableStringname// 用户名name){System.out.println(用户IDid);System.out.println(用户namename);}}在浏览器中输入下面的地址http://localhost:8080/demo10/users/2/tom这里2表示的就是idtom表示表示就是name访问浏览器后IDEA控制台就会出现我们的参数
延伸阅读

更多相关文章

2026/11/3 2:59:53

网络安全技能大赛加固清单与取证链路实践

简介:这份2021年全国职业院校技能大赛网络安全竞赛试题文档,面向备赛选手、指导教师及希望系统梳理竞赛考点的安全从业者,可用于模拟训练、教学拆解与自查补漏。压缩包内仅含1个docx文件,大小约119KB,内容围绕A、B模块…

2026/11/3 2:59:53

X-Plane 11 UDP 仿真接口:字节对齐与 RPOS/RREF 收发避坑

简介:《X-Plane11_UDP通信的说明文档(中文)》面向飞行模拟器开发者、自定义座舱与运动平台集成者,以及需要用外部程序驱动或读取X-Plane 10/11飞行数据的爱好者,重点解决UDP消息格式、端口约定、数据收发与联调排错问题…

2026/11/3 2:59:53

CPU、内存、汇编到系统调用:程序员底层硬核知识全景

简介:面向希望补齐计算机底层常识与系统级认知的程序员,这份硬核知识合辑围绕CPU结构、RAM分类、进制转换、操作系统与API、BIOS及引导流程、汇编语言、应用与硬件交互、调用约定和DMA等主题展开,适合初中级开发者查漏补缺,也可作…

2026/11/3 2:59:53

网络安全技能大赛配置加固与取证流量分析考点拆解

简介:《2021年全国职业院校技能大赛网络安全竞赛试题》文档面向职业院校网络安全参赛选手、指导教师及备赛人员,聚焦真实赛项环境下的系统加固与攻防任务演练,可用于赛前模拟、课堂教学和技能查漏。包内为1个docx文件,大小约119KB…

2026/11/3 2:59:53

NetSpot Wi-Fi优化:RSSI、信道规划与Survey热图排查

简介:这份文档面向家庭用户与小型办公网络的管理者,系统讲解如何用 NetSpot 完成 Wi-Fi 扫描、干扰排查与信道优化,属于偏实操的工具使用指南,适合希望从“能连上”进阶到“连得稳、连得快”的中级读者。压缩包共 1 个文件&#x…

2026/11/3 2:54:53

DeepSeek 大模型深度评测:参数解析与实战边界

最近在项目里接入了一个新的大语言模型接口,原本以为只是换个后端服务,结果在实际开发中遇到了不少意想不到的状况。有时候它生成的代码逻辑严密却跑不通,有时候明明问的是事实性问题,它却信誓旦旦地编造了一个不存在的库。更让人…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑