2012-06-26 133 views
2

我有一個Java Servlet,它正在處理REST請求。但是,當它收到無效數據時就會中斷。這是以XML格式發佈的,爲了解決這個問題,我在過濾器鏈中添加了一個過濾器。過濾器正在被調用,我可以訪問請求主體中的數據,訪問XML。更改請求的主體

我可以驗證這一點,並操縱它以確保數據是正確的,但我不能解決如何將其重置回請求對象。

如何設置HttpServletRequest對象的主體?

回答

2

你可以用你的HttpServletRequest對象包裝一個新的類來命名它:NewHttpServletRequest。實際重寫應在適當的重寫的方法來完成,例如的getParameter(字符串)

package com.example; 

import javax.servlet.http.HttpServletRequestWrapper; 

public class MyHttpServletRequest extends HttpServletRequestWrapper { 

    public MyHttpServletRequest(HttpServletRequest request) { 
     super(request); 
    } 

    public String getParameter(String name) { 
     String str = super.getParameter(name); 
     // DO THE REWRITING 
     return str; 
    } 

}