更改 httpservletrequest 参数然后传递请求 [重复]

Posted

技术标签:

【中文标题】更改 httpservletrequest 参数然后传递请求 [重复]【英文标题】:Changing a httpservletrequest parameter and then passing the request [duplicate] 【发布时间】:2016-10-03 08:38:09 【问题描述】:

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

到目前为止,我已经尝试过 request.setAttribute,它解决了问题,但它没有清理参数,即:参数没有改变。

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

*** 中有一些帖子,但没有帮助

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

你能给我一个例子吗,那么如果我有一个变量abc="this is * filled"abc1="this is filled"我将如何将它设置为HttpServletRequestWrapper,然后将它传递给过滤器链。 我添加了答案链接

以上是关于更改 httpservletrequest 参数然后传递请求 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

idea传入HttpServletRequest时显示cannot resolve symbol的问题

黑马程序员javaweb教程:HttpServletRequest获取参数.doc

HttpServletRequest - 获取查询字符串参数,无表单数据

HttpServletRequest获取请求参数

继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数

如何向我的 Java Servlet 的现有 HttpServletRequest 添加参数?