Java使用servlet过滤器修改请求参数

Java使用servlet过滤器修改请求参数,第1张

Java使用servlet过滤器修改请求参数

如前所述

HttpServletRequest
,没有setParameter方法。这是故意的,因为该类表示来自客户端的请求,而修改参数将不表示该请求。

一种解决方案是使用

HttpServletRequestWrapper
类,该类使你可以将一个请求与另一个请求包装在一起。你可以对其进行子类化,并重写该getParameter方法以返回经过清理的值。然后,你可以将该包装的请求传递给
chain.doFilter
而不是原始请求。

这有点丑陋,但这就是servlet API所说的。如果你尝试将其他任何内容传递给doFilter,则某些servlet容器会抱怨你违反了规范,并拒绝处理它。

一个更好的解决方案是更多的工作-修改处理该参数的原始servlet / JSP,以便它期望使用请求属性而不是参数。过滤器检查参数,将其净化,然后使用

request.setAttribute
净化值设置属性(使用)。没有子类,没有欺骗,但确实需要你修改应用程序的其他部分。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5108806.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存