更改httpservletrequest参数然后传递请求

时间:2016-06-03 10:14:38

标签: http servlets

我有一个已经来自doFilter方法的请求,现在我想清除那个没有特殊字符的请求的参数。 更改参数后,我想设置该参数并将其传递给同一个请求。

到目前为止,我已经尝试过request.setAttribute,它解决了这个问题,但它并没有对参数进行消毒,即:参数没有改变。

到目前为止,我尝试了很多东西,

  • stackoverflow中的一些帖子,但是没有帮助

如何清理参数并再次将其设置为请求包装器,然后将其传递给doFilter。

1 个答案:

答案 0 :(得分:0)

您无法清除该请求的参数,但可以使用HttpServletRequestWrapper的子类将其包装,您可以将其传递给链中的下一个过滤器。原始请求在构造函数中传递。

包装器必须具有一个可修改的映射作为字段,该映射使用另一个请求的参数初始化(减去您需要删除的那些),并且必须扩展所有参数相关的方法,以便将该映射用于实现(而不是那些原始请求)

具有类似要求的示例:https://stackoverflow.com/a/1422202/1536382