Вы должны использовать HttpServletRequestWrapper для этой цели.Вы передаете исходный запрос оболочке из фильтра или сервлета и переопределяете методы запроса, которые хотите.Остальной части приложения вы передаете измененный объект-оболочку, а не исходный запрос.
public class WrapperRequest extends HttpServletRequestWrapper {
public WrapperRequest (ServletRequest request) {
super((HttpServletRequest)request);
}
public String getParameter(String paramName) {
String value = super.getParameter(paramName);
if ("yourParamName".equals(paramName)) {
value = "yourValue";
}
return value;
}
public String[] getParameterValues(String paramName) {
//override here too
}
}
Затем в вашем фильтре или сервлете
WrapperRequest wrapperReq= new WrapperRequest(request);
chain.doFilter(wrapperReq,respone); //for filters, all resources in the request will see the new param value
requestDispatcher.forward(wrapperReq, response);//servlets, the forwarded resource will see the new param value