首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

补: Rest 风格请求处理的的内容补充(1)

编程知识
2024年09月10日 13:43

补: Rest 风格请求处理的的内容补充(1)

Rest风格请求:注意事项和细节

  1. 客户端是PostMan 可以直接发送Put,delete等方式请求,可不设置Filter

  2. 如果哟啊SpringBoot支持页面表达的 Rest 功能,则需要注意如下细节:

  1. Rest 风格请求核心 Filter: HiddenHttpMethodFilter,表单请求会被 HiddenHttpMethodFilter拦截,获取到表单_method的值,再判断PUT/DELETE/PATCH(patch方法是新引入的,是对Put方法的补充,用来对已知资源进行局部更新:) https://segmentfault.com/q/1010000005685904
  2. 如果要SpringBoot 支持页面表单的Rest功能,需要在application.yml 启用 filter功能,否则无效。
  3. 修改application.yml (resources 类路径下) 启用 filter 功能。

在这里插入图片描述

spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true # 开启页面表单的rest功能,启用了HiddenHttpMethodFilter,支持rest

Rest的核心过滤器:

  1. 当前的浏览器只支持 post/get请求,因此为了得到 put/delete的请求方式需要提供的 HiddenHttpMethodFilter过滤器进行转换

  2. HiddenHttpMethodFilter : 浏览器 form 表单只支持 get 和 post 请求,而delete,put 等method并不支持,
    spring添加了一个过滤器,可以将这些请求转换为标准的 http 方使得支持get,post,put和delete请求

  3. HiddenHttpMethodFilter 能对 post 请求方式进行转换,因此我们需要特别的注意这一点

  4. 这个过滤器需要在 web.xml 中配置

Spring Boot 开启视图解析器的 yaml 语法

spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true # 开启页面表单的rest功能,启用了HiddenHttpMethodFilter,支持rest
    view: # 配置视图解析器
      prefix: /rainbowsea/** # 这里是需要注意,如果你配置了 static-path-pattern: /rainbowsea/** 需要保持一致
#      prefix: /rainbowsea/ 都行 # 这里是需要注意,如果你配置了 static-path-pattern: /rainbowsea/** 需要保持一致
      suffix: .html
    static-path-pattern: /rainbowsea/**

我们这里思考一个问题:为什么这里return "hello",返回的是不是字符串,而是转发到对应的资源文件。

在这里插入图片描述

package com.rainbowsea.springboot.controller;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HiController {


    @RequestMapping("/hello")
    public String hi(){
        return "hi:):)";
    }


    @RequestMapping("/go")
    public String go(){
        return "hello";
        /*

        return 是先看视图解析器当中是否有 hello.html 页面,没有就在找 controller 控制
是否有处理该请求的,如果两者都没有则报 404错误
         */
    }

}

在这里插入图片描述

注意:我是配置了视图解析器的。
在这里插入图片描述

启动 Spring Boot ,打开浏览器输入:http://localhost:8080/go

在这里插入图片描述

在这里插入图片描述

当 hello.html 静态资源存在时,并没有走 controller

我们将静态文件资源 hello.html 移除,再次访问:http://localhost:8080/go

问题:

我们将静态文件资源 hello.html 移除,再次访问:http://localhost:8080/go

在这里插入图片描述

在这里插入图片描述

最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

From:https://www.cnblogs.com/TheMagicalRainbowSea/p/18406368
本文地址: http://shuzixingkong.net/article/1902
0评论
提交 加载更多评论
其他文章 ServiceMesh 1:大火的云原生微服务网格,究竟好在哪里?
1 关于云原生 云原生计算基金会(Cloud Native Computing Foundation, CNCF)的官方描述是: 云原生是一类技术的统称,通过云原生技术,我们可以构建出更易于弹性扩展、极具分布式优势的应用程序。这些应用可以被运行在不同的环境当中,比如说 私有云、公有云、混合云、还有多
ServiceMesh 1:大火的云原生微服务网格,究竟好在哪里? ServiceMesh 1:大火的云原生微服务网格,究竟好在哪里? ServiceMesh 1:大火的云原生微服务网格,究竟好在哪里?
FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML'24
在许多实际应用中,相对于反映类别之间微妙差异的细粒度标签,我们更容易获取粗粒度标签。然而,现有方法无法利用粗标签以无监督的方式推断细粒度标签。为了填补这个空白,论文提出了FALCON,一种从粗粒度标记数据中无需细粒度级别的监督就能发现细粒度类别的方法。FALCON同时推断未知的细粒度类别和粗粒度类别
FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML'24 FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML'24 FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML'24
使用VSCode搭建UniApp + TS + Vue3 + Vite项目
`uniapp`是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、以及各种小程序。深受广大前端开发者的喜爱。`uniapp`官方也提供了自己的IDE工具`HBuilderX`,可以快速开发`uniapp`项目。但是很多前端的同学已经比较习惯使用`VSC
使用VSCode搭建UniApp + TS + Vue3 + Vite项目 使用VSCode搭建UniApp + TS + Vue3 + Vite项目 使用VSCode搭建UniApp + TS + Vue3 + Vite项目
论文阅读翻译之Deep reinforcement learning from human preferences
论文阅读翻译之Deep reinforcement learning from human preferences 关于 首次发表日期:2024-09-11 论文原文链接:https://arxiv.org/abs/1706.03741 论文arxiv首次提交日期:12 Jun 2017 使用KIM
论文阅读翻译之Deep reinforcement learning from human preferences
常回家看看之house_of_kiwi
house of kiwi 前言:house_of_kiwi 一般是通过触发__malloc_assert来刷新IO流,最后可以劫持程序流或者通过和setcontext来打配合来进行栈迁移来得到flag。 我们看看触发的源码 #if IS_IN (libc) #ifndef NDEBUG # def
常回家看看之house_of_kiwi 常回家看看之house_of_kiwi 常回家看看之house_of_kiwi
Qt 中实现异步散列器
在很多工作中,我们需要计算数据或者文件的散列值,例如登录或下载文件。 而在 Qt 中,负责这项工作的类为 `QCryptographicHash`。 虽然 `QCryptographicHash `很优秀,但它最大的问题在于其散列值的计算是同步的( 即阻塞 ),对小数据来说并没什么影响,但对大数据来
Qt 中实现异步散列器
数据库容灾等级
数据库容灾等级 在信息化时代,企业的数据安全和业务连续性变得至关重要,容灾备份作为确保数据不丢失和业务不中断的重要措施备受关注。 我们通常将容灾备份分为四个等级,从最基本的本地备份到复杂的异地多活系统,每个等级的特点和适用场景各不相同。 下面我们就来详细了解一下这四个等级的容灾备份方案。容灾备份容灾
数据库容灾等级 数据库容灾等级 数据库容灾等级
.NET 9 RC1 正式发布,ASP.NET Core 得到完善
.NET 9 RC1 是 .NET 9 的第一个候选发布版本(Release Candidate),标志着该版本接近最终发布。这次更新包括增强的WebSocket API、新的压缩选项、高级SignalR跟踪以及.NET MAUI的更新,以改善文本对齐等。在文章还宣布了.NET Conf 2024的