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

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

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

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

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

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

【问题讨论】:

    标签: http servlets


    【解决方案1】:

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

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

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

    【讨论】:

    • 你能给我一个例子吗,那么如果我有一个变量abc="this is * filled"abc1="this is filled"我将如何将它设置为HttpServletRequestWrapper,然后将它传递给过滤器链。
    • 我添加了答案链接
    猜你喜欢
    • 2022-10-06
    • 1970-01-01
    • 2021-06-26
    • 2013-02-17
    • 2021-01-04
    • 2019-06-03
    • 2011-07-05
    • 1970-01-01
    • 2017-03-21
    相关资源
    最近更新 更多