是否可以更改请求方法来转发请求?

2024-03-19

我正在研究一个网关,它只允许 GET 请求,而其背后的 REST 端点能够接受各种方法(POST、PUT、DELETE、OPTIONS)。因此,我尝试将请求方法作为参数传递,并有一个过滤器,它用正确的方法转发请求。从我在规范中看到的,只允许转发请求而不进行任何修改:

request.getRequestDispatcher(route).forward(request, response)

有什么解决方法吗?

注意:重定向对我来说不是一个选项。


如果您有一个处理 Restful 服务的 Rest Servlet(通常是这种情况),您可以扩展它并覆盖service方法。在那里你可以调用doPost(..), doPut(..)等等,具体取决于您想要的参数。默认实现HttpServlet uses request.getMethod().

您可以做的另一件事(不太可取)是让您的过滤器向端点发出新请求,使用URL.openConnection(org apache commons httpcomponents),并将该内部请求的结果流式传输回客户端。您可以在那里指定请求方法。

不管怎样,我认为你应该尝试克服网关的限制,因为它会让你处于一个非常尴尬的境地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以更改请求方法来转发请求? 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 如何禁用颤动开关

    在我的帮助屏幕中 我有这个开关 其目的是不执行任何操作 只是按原样显示 但我现在遇到的问题是 即使它没有做任何事情 用户也可以拖动开关 所以我试图弄清楚如何禁用它 以便没有人可以拖动开关按钮 return Container child C
  • C# 中的激活函数列表

    我可以在数学中找到激活函数列表 但在代码中却找不到 所以我想如果应该有这样一个列表的话 这将是代码中放置这样一个列表的正确位置 从这两个链接中算法的翻译开始 https en wikipedia org wiki Activation fu
  • 将进度条改为双倍

    进度条 ProgressBar pb ProgressBar findViewById R id progressbar pb setProgress 0 int k int max pb setMax k int j int cost p
  • 使用reinterpret_cast访问类似“struct {double, int}”的对象

    通过访问对象reinterpret casted 指针和相关的 UB 已经在这里进行了广泛的讨论 阅读问题和答案后 我仍然不确定是否正确使用 POD 类型的未初始化内存 假设我想 模仿 struct double d int i 通过手动为
  • Meteor 1.0 - 为什么“构建应用程序”花费的时间比以前长得多?

    所以我刚刚更新到Meteor 1 0 在本地开发应用程序时 每当我更新任何 js 文件时 构建应用程序都需要大约 15 秒以上的时间 在此期间控制台会显示 正在构建应用程序 尔格 这是 1 0 中的新行为吗 过去需要 1 2 秒才能看到对
  • 无法使用 Maven“mvn package”构建 Guava

    我刚刚阅读了 Guava 并查看了它的源代码 但不知道如何构建它来使用 我使用 mvn package 构建了 jar 文件 但它生成了 Guava GWT 错误 ERROR Failed to execute goal on projec
  • 为什么我在运行简单的 Spring Boot 应用程序时总是收到状态为“404”的 Whitelabel 错误页面

    我的控制器 Controller RequestMapping ComponentScan com spring EnableAutoConfiguration public class HomeController Value frame
  • 为什么 Gradle 不在编译/运行时类路径中包含传递依赖项?

    我正在学习 Gradle 的工作原理 但我无法理解它如何解决项目传递依赖关系 现在 我有两个项目 projectA 它对外部库有一些依赖项 项目 仅对项目有一个依赖项 无论我如何尝试 当我构建projectB时 gradle都不在proje
  • 使用 WebKit 的简单 Swift Cocoa 应用程序:上传图片不起作用

    我决定制作自己的 FB 聊天应用程序 只显示https messenger com https messenger com on a WebView在尝试其他 免费增值 应用程序后 My ViewController swift只需几行代码
  • 如何使用 Powershell 作为我的 trapmp-encoding-shell?

    首先我启动 eshell 然后输入命令cd plink
  • 在函数式编程中实现双向计数器?

    我正在尝试了解一些函数式编程基础知识 因此 通过使用高阶函数 我可以创建一个可以递增的计数器 function counter start var count start return function return count var m
  • 在元数据文档中找不到 WsTrust 端点

    我正在关注这个tutorial https github com Azure Samples active directory java native headless了解用户成功登录后如何获取令牌 到目前为止我已经完成的步骤 我已经使用以
  • 如何 git add 仅匹配模式的行?

    我正在使用 git 跟踪一些配置文件 我通常会进行互动git add p但我正在寻找一种方法来自动添加与模式匹配的所有新 修改 删除行 否则 我将花费很长时间来完成所有交互式拆分和添加 git add有文件名的模式匹配 但我找不到有关内容的
  • MS ACCESS 与 LAN 上的桌面应用程序

    在不使用共享文件夹的情况下通过 LAN 托管 MS ACCESS 和桌面应用程序的最佳方式是什么 您可以使用一些终端服务器 TS 例如微软的终端服务器 这是 ms windows 操作系统服务器版本的一项功能 还有其他可用的 TS Citr
  • R - 以 1 为增量的循环函数

    我有以下功能 position tab lt filter Tall Time point 2 gt group by Object gt summarise minimum min Pixel pos maximum max Pixel
  • 子菜单的 javascript 悬停功能

    我在尝试理解 javascript 方面还很陌生 我一直在收集多个示例 试图找出我做错了什么 但无法让它正常工作 在某一时刻 我曾使用过 onmouseover mouseout 但它只适用于其中一个菜单 我确信这是我忽略的简单事情 但任何
  • 如何获取jqGrid当前的搜索条件?

    我需要获得与 jqGrid 在 GET POST search 参数上传递的完全相同的东西 我怎样才能做到这一点 为了结束这个问题 我做了以下几行 grid getGridParam postData filters 这样我就得到了当我们对
  • AngularJS 禁用 ngClick

    在 AngularJS 中 有什么办法可以制作一个ng click依赖于布尔值 例如 我希望以下文本 Click 可点击 但是only当某些范围属性 例如 rootScope enableClick is true div Click di
  • 从套接字读取时如何检测客户端何时完成发送请求?

    我现在正在编写一个 http 服务器 但从套接字读取时遇到问题 我的问题是inputStream来自客户端的数据永远不会结束 它会一直读取 直到客户端关闭 我知道客户端发送http请求后并不会立即关闭与服务器的连接 我怎样才能退出while
  • 是否可以更改请求方法来转发请求?

    我正在研究一个网关 它只允许 GET 请求 而其背后的 REST 端点能够接受各种方法 POST PUT DELETE OPTIONS 因此 我尝试将请求方法作为参数传递 并有一个过滤器 它用正确的方法转发请求 从我在规范中看到的 只允许转