2016-01-21 31 views
0

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

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

我们通过为旧的端点设置RequestDispatcher.forward()(停止间隔排列直到客户端发生更改)来停用旧版本的API。除了这个POST到DELETE映射外,一切都很棒。

任何解决办法有这个问题,而在新的API将POST终点删除操作?>

回答

0

虽然我同意使用下一层后,你的servlet将是一个更好的选择,这是有趣的。包装传入的请求以添加基于请求的功能(IE:auth状态等)是常见的。 HttpServletRequestWrapper被用来实现这一点。你可以做以下的,如果你只需要改变的方法:

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

您也可以改变传入的请求的其他方面,如果你需要进一步调整的要求。这可能会发挥与您的servlet容器RequestDispatcher,但它完全依赖于容器。

0

我想使用的servlet API,你不能做到这一点。你可以做你想要创建一个新请求,处理它的响应,并通过原始响应(在servlet中)发回它。

一些http clientes可能会帮助你。见Apache的HTTP客户端:

http://hc.apache.org/httpclient-3.x/methods/delete.html