java - 更改 RequestDispatcher 中的 HTTP 方法

标签 java servlet-3.0 requestdispatcher

如何在 javax,servlet.RequestDispatcher 中更改 HTTP 方法?

我有一些旧的服务 API 支持 GET 和 POST,新版本支持 DELETE 方法来删​​除以前通过 POST 发生的记录。

我们正在通过为旧端点设置 RequestDispatcher.forward() 来停用旧版本 API(停止间隙安排,直到客户端更改)。一切都很酷,除了这个 POST 到 DELETE 映射。

有没有在新 API 中为删除操作添加 POST 端点的解决方案?

最佳答案

虽然我同意在您的 servlet 之后使用下一层是更好的选择,但这很有趣。包装传入请求以添加基于请求的功能(IE:身份验证状态等)是很常见的。 HttpServletRequestWrapper 用于完成此操作。如果您只需要更改方法,您可以执行以下操作:

class PostDeleteAdapter extends HttpServletRequestWrapper {
  public String getMethod(){ return "POST"; }
}

如果您需要进一步调整请求,您还可以更改传入请求的其他方面。这可能与您的 servlet 容器 RequestDispatcher 配合得很好,但它完全取决于容器。

关于java - 更改 RequestDispatcher 中的 HTTP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913855/

相关文章:

java - 跨应用程序发送参数

java - 将字符串值转换为变量名 |字符串值包含变量名

eclipse - org.springframework.web.SpringServletContainerInitializer 无法转换为 javax.servlet.ServletContainerInitializer -- Eclipse Spring 项目

java - 如何在 Spring Controller 中获取调度程序 servlet 名称

java - 没有 web.xml 的基于注解的 Spring/JAX-RS 集成

java - Tomcat : JRStyledTextParser not Initialized. java.awt 设置为 true

Java Servlet RequestDispatcher 没有转发 url

java - ` (strs[i].indexOf(prefix) != 0) ` 在查找 LongestCommonPrefix

java - Grails 的 Spring Security 插件所需的 UI 集成示例

java - 如何将 XML 元素替换为另一个(另一个文档的)元素?