更改 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 - 获取查询字符串参数,无表单数据
继承HttpServletRequestWrapper以实现在Filter中修改HttpServletRequest的参数