2016-01-21 59 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