2012-06-26 7 views
2

У меня есть сервлет Java, который обрабатывает запрос REST. Однако это ломается, когда он получает недопустимые данные. Это POSTED в формате XML, и чтобы попытаться разрешить это, я добавил фильтр в цепочку фильтров. Вызывается фильтр, и я могу получить доступ к данным в теле запроса, обращаясь к XML.Измените тело запроса

Я могу проверить это и манипулировать им, чтобы убедиться, что данные верны, но я не могу решить, как вернуть его обратно в объект запроса.

Как вы можете установить тело объекта HttpServletRequest?

ответ

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; 
    } 

}

Смежные вопросы