如何在 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/