我有一个Java Servlet,它正在处理REST请求。但是,当它收到无效数据时,它会中断。这是以XML格式发布的,为了尝试解决这个问题,我在过滤器链中添加了一个过滤器。正在调用过滤器,我可以访问请求正文中的数据,访问XML。
我可以对此进行验证并对其进行操作以确保数据正确无误,但我无法确定如何将其重置回请求对象。
如何设置HttpServletRequest对象的主体?
答案 0 :(得分:2)
您可以使用新类包装您的HttpServletRequest对象,并将其命名为:NewHttpServletRequest。实际的重写应该在适当的覆盖方法中完成,例如getParameter(String)
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;
}
}
答案 1 :(得分:2)
您可以使用public HttpServletRequestWrapper(HttpServletRequest request)构造函数使用新对象包装原始请求,您不必自己做很多工作。