2012-06-26 38 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; 
    } 

}