三、@PathVariable

2023-05-16

3.1@PathVariable 映射 URL 绑定的占位符

  • 带占位符的 URL Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
  • 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。

实例:
SpringMVCTest.java

//@PathVariable可以用来映射URL中的占位符到目标方法的参数中
@RequestMapping("/testPathVariable/{id}")
    public String testPathVariable(@PathVariable("id") Integer id)
    {
        System.out.println("testPathVariable:"+id);
        return SUCCESS;
    }

index.jsp

<a href="springmvc/testPathVariable/1">testPathVariable</a>

3.2REST

  • REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用
  • 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。要获取这个资源,访问它的URI就可以,因此 URI 即为每一个资源的独一无二的识别符。
  • 表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。
  • 状态转化(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生状态转化State Transfer)。而这种转化是建立在表现层之上的,所以就是 表现层状态转化。具体说,就是 HTTP 协议里面,四个表示操作方式的动词:GETPOSTPUTDELETE。它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

示例:
- /order/1 HTTP GET :得到 id = 1 的 order
- /order/1 HTTP DELETE:删除 id = 1的 order
- /order/1 HTTP PUT:更新id = 1的 order
- /order HTTP POST:新增 order

HiddenHttpMethodFilter:浏览器 form 表单只支持 GET与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与DELETE 请求。

3.2.1在web.xml中配置HiddenHttpMethodFilter

web.xml

 <!--
     配置org.springframework.web.filter.HiddenHttpMethodFilter:可以把POST请求转换成DELETE或者POST请求
      -->

   <filter>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
   </filter>   

   <filter-mapping>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>

3.2.2在SpringMVCTest中测试相应的方法

SpringMVCTest.java

/*
     * 如何发送PUT和DELETE请求
     * 1.需要配置HiddenHttpMethodFilter
     * 2.需要发送POST请求
     * 3.需要发送POST请求时携带一个name="_method"的隐藏域,value值为DELETE或者PUT
     * 
     * 在springmvc框架中通过@PathVariable注解来获取id值
     * */
    //get请求
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
    public String testRest(@PathVariable Integer id)
    {
        System.out.println("testRest Get"+id);
        return SUCCESS;
    }

    //post请求
    @RequestMapping(value="/testRest",method=RequestMethod.POST)
    public String testRest()
    {
        System.out.println("testRest POST");
        return SUCCESS;
    }

    //delete请求
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
    public String testRestDelete(@PathVariable Integer id)
    {
        System.out.println("testRest DELETE"+id);
        return SUCCESS;
    }

    //delete请求
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
    public String testRestPut(@PathVariable Integer id)
    {
        System.out.println("testRest PUT"+id);
        return SUCCESS;
    }

3.2.3index.jsp中的写法

index.jsp

    <a href="springmvc/testRest/1">Test Rest Get</a><br/>
    <form action="springmvc/testRest" method="post">
         <input type="submit" value="TestRest Post"/>
    </form><br/>
    <form action="springmvc/testRest/1" method="post">
         <input type="hidden" name="_method" value="DELETE"/>
         <input type="submit" value="TestRest DELETE"/>
    </form><br/>
    <form action="springmvc/testRest/1" method="post">
         <input type="hidden" name="_method" value="PUT"/>
         <input type="submit" value="TestRest PUT"/>
    </form><br/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三、@PathVariable 的相关文章

  • mybatis

    我们在做SSM项目的时候 xff0c mybatis是其中的一部分 xff0c 是最后一步也是最重要的一步 xff0c 因为很多时候我们都是为了对数据库进行改动 前几天我在复习mybatis的时候 xff0c 就把一些可能会踩到的坑都碰到了
  • 浅谈yaml

    YAML 是 YAML Ain t a Markup Language xff08 YAML 不是一种标记语言 xff09 的递归缩写 在开发的这种语言时 xff0c YAML 的意思其实是 xff1a Yet Another Markup
  • 跨域处理(CORS)

    首先 xff0c 来了解什么是跨域 xff1f 出于安全性 xff0c 浏览器限制脚本内 xff08 多数情况指ajax xff09 发起的跨源HTTP请求 这意味着使用这些API的 Web应用程序只能从加载应用程序的同一个域请求HTTP资
  • java 文件上传

    Java的件上传有很多种实现方式 xff0c 原生的java程序使用的都是HttpServletRequest来接收前台的文件数据 xff0c 然后通过file进行转换等等来实现的 本文章是使用springboot来实现文件上传的功能 xf
  • linux系统上安装JDK8

    作者 xff1a ChenZhen 博客地址 xff1a https www chenzhen space 版权 xff1a 本文为博主 ChenZhen 的原创文章 xff0c 本文版权归作者所有 xff0c 转载请附上原文出处链接及本声
  • 源码离线安装mariadb

    源码离线安装mariadb 卸载系统自带mariadb libs 使用下面的命令检查是否安装有MySQL MariaDB rpm qa grep mariadb rpm e mariadb libs 5 5 68 1 el7 x86 64
  • 结束,也是开始。

    三年时光转眼即逝 xff0c 临到毕业才幡然醒悟 xff0c 自己掌握的专业技能太少 xff0c 最后几个月才养成了几个好习惯 在上班利用空闲时间多学学其他的技术 xff0c 希望自己可以不停的努力 xff0c 充实自己的每一天
  • 论 "张筱雨"

    当今网络谁最红 xff1f 当今网络谁最裸 xff1f 当今网络谁征服了大多数男人们的眼球 xff1f 当今网络谁最具创新 xff0c 引领时尚潮流 xff0c 当今网络谁敢和日本AV女优叫板 那么她就是 张筱雨 张筱雨 xff01 xff
  • Linux的多用户登录

    1 Windows只允许在同一时刻只有一个用户登录 xff0c 而Linux允许多用户同时登录 2 在Linux下 xff0c 用户有两种登录模式 一种是 图形界面登录 xff0c 类似于Windows 另一种是 文本登录 xff0c 类似
  • URI encode与URL encode对空格的不同处理

    在各种开放平台 OpenAPI越来越多之时 xff0c 客户端软件或多或少的在通过HTTP HTTPS协议与服务器交互 这其中一个常见的情况就是要求对URL进行encode处理 xff0c 以保证中文 特殊字符的正确传递 不过这个小小的en

随机推荐

  • No plugin found for prefix 'install' in the current project解决方案

    本来以下配置 xff0c 报上面的错 lt mirrors gt lt mirror Specifies a repository mirror site to use instead of a given repository The r
  • android的onNewIntent

    1 onNewIntent Intent intent 是Activity类的方法 它被调用发几种情况如下 lt activity android name 61 34 NewIntentDemo 34 android label 61 3
  • 全网火爆,JMeter性能测试-压力负载测试场景(总结)看这一篇足够了......

    目录 xff1a 导读 前言一 Python编程入门到精通二 接口自动化项目实战三 Web自动化项目实战四 App自动化项目实战五 一线大厂简历六 测试开发DevOps体系七 常用自动化测试工具八 JMeter性能测试九 总结 xff08
  • Linux LVM在线扩容xfs文件系统(创建大于2T的磁盘分区)

    1 使用parted方式格式化磁盘 1 1 查看磁盘情况 root 64 superman fdisk l Disk dev sdd 2199 0 GB 2199023255552 bytes 4294967296 sectors Unit
  • Linux LVM在线扩容ext3文件系统

    1 扩容前信息查看 1 2 查看文件系统情况 root 64 superman df h 文件系统 容量 已用 可用 已用 挂载点 dev mapper VG00 lv root 30G 23G 5 3G 82 dev mapper VG0
  • Linux云计算-04_Linux用户及权限管理

    Linux是一个多用户的操作系统 xff0c 引入用户 xff0c 可以更加方便管理Linux服务器 xff0c 系统默认需要以一个用户的身份登录 xff0c 而且在系统上启动进程也需要以一个用户身份器运行 xff0c 用户可以限制某些进程
  • 01 openEuler操作系统介绍

    文章目录 01 openEuler操作系统介绍1 1 发布件1 2 最小硬件要求1 3 硬件兼容性1 4 关键特性1 4 1 openEuler 22 03 LTS基于 Linux Kernel 5 10 内核构建 在进程调度 内存管理等方
  • 02 openEuler操作系统的安装

    文章目录 02 openEuler操作系统的安装2 1 openEuler操作系统的安装流程2 2 openEuler操作系统的安装详细步骤2 2 1 下载地址2 2 2 创建虚拟机2 2 2 1 方法一 xff1a 典型配置2 2 2 2
  • 06 openEuler XFCE 桌面环境的安装和使用

    06 openEuler XFCE 桌面环境的安装和使用 文章目录 06 openEuler XFCE 桌面环境的安装和使用6 1 XFCE简介6 2 XFCE安装方法6 2 1 更新软件源6 2 2 安装字库6 2 3 安装Xorg6 2
  • 21 openEuler 管理服务-改变运行级别

    文章目录 21 管理服务 改变运行级别21 1 Target和运行级别21 2 查看系统默认启动目标21 3 查看当前系统所有的启动目标21 4 改变默认目标21 5 改变当前目标21 6 切换到救援模式21 7 切换到紧急模式 21 管理
  • 字符串通配(动态规划java)

    1 牛客网题目 xff1a 题目描述 对于字符串A xff0c 其中绝对不含有字符 和 再给定字符串B xff0c 其中可以含有 或 xff0c 字符不能是B的首字符 xff0c 并且任意两个 字符不相邻 exp中的 代表任何一个字符 xf
  • 26 openEuler管理网络-使用ip命令配置网络

    文章目录 26 openEuler管理网络 使用ip命令配置网络26 1 配置IP地址26 1 1 配置静态地址26 1 2 配置多个地址 26 2 配置静态路由 26 openEuler管理网络 使用ip命令配置网络 说明 xff1a 使
  • 31 openEuler使用LVM管理硬盘-管理物理卷

    文章目录 31 openEuler使用LVM管理硬盘 管理物理卷31 1 创建物理卷31 2 查看物理卷31 3 修改物理卷属性31 4 删除物理卷 31 openEuler使用LVM管理硬盘 管理物理卷 31 1 创建物理卷 可在root
  • 41 openEuler搭建FTP服务器-传输文件

    文章目录 41 openEuler搭建FTP服务器 传输文件41 1 概述41 2 连接服务器41 3 下载文件41 4 上传文件41 5 删除文件41 6 断开服务器 41 openEuler搭建FTP服务器 传输文件 41 1 概述 这
  • 45 openEuler搭建Nginx服务器-Nginx概述和安装

    文章目录 45 openEuler搭建Nginx服务器 Nginx概述和安装45 1 概述45 2 安装 45 openEuler搭建Nginx服务器 Nginx概述和安装 45 1 概述 Nginx 是一款轻量级的 Web 服务器 反向代
  • 14 KVM虚拟机配置-配置虚拟设备(其它常用设备)

    文章目录 14 KVM虚拟机配置 配置虚拟设备 xff08 其它常用设备 xff09 14 1 概述14 2 元素介绍14 3 配置示例 14 KVM虚拟机配置 配置虚拟设备 xff08 其它常用设备 xff09 14 1 概述 除存储设备
  • 15 KVM虚拟机配置-体系架构相关配置

    文章目录 15 KVM虚拟机配置 体系架构相关配置15 1 概述15 2 元素介绍15 3 AArch64架构配置示例15 4 x86 64架构配置示例 15 KVM虚拟机配置 体系架构相关配置 15 1 概述 XML中还有一部分体系架构相
  • 16 KVM虚拟机配置-其他常见配置项

    文章目录 16 KVM虚拟机配置 其他常见配置项16 1 概述16 2 元素介绍16 3 配置示例 16 KVM虚拟机配置 其他常见配置项 16 1 概述 除系统资源和虚拟设备外 xff0c XML配置文件还需要配置一些其他元素 xff0c
  • windows查看默认编码类型

    xfeff xfeff 开始 cmd 运行chcp 你会得到一个数 例 xff1a 如936 xff0c 那就是GBK简体中文 ANSI代码页为1252 xff0c 日文代码页为932
  • 三、@PathVariable

    3 1 64 PathVariable 映射 URL 绑定的占位符 带占位符的 URL 是 Spring3 0 新增的功能 xff0c 该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义通过 64 PathVari