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

发布时间:2026/11/3 21:23: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控制台就会出现我们的参数

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询