springboot中使用filter来修改body里的参数

本文介绍如何在Springboot项目中利用Filter组件,以去除POST请求参数首尾空格为例,实现统一处理,减少重复代码,提高工作效率。通过自定义Filter、处理request以及注册Filter,实现了高效且通用的解决方案。
摘要由CSDN通过智能技术生成

在这里, 以去空格为例来进行说明.

背景:在项目中, 经常会遇到前端往后端传参会有字符串参数首尾有空格的情况, 一般如果字段比较少, 或者接口比较少, 自行在controller位置处理一下, 是没有问题的. 就是重复代码多, 工作重复, 没劲.

所以在这里以去空格说明如何处理post方法里的参数首尾空格问题.

  1. 自定义filter.
public class ParamsFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain filterChain) throws IOException, ServletException {
        //去空格处理
        TrimReqParamWrapper trimReqParamWrapper = new TrimReqParamWrapper((HttpServletRequest) request);
        filterChain.doFilter(trimReqParamWrapper, response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

    @Override
    public void destroy() {

    }

}
  1. 对request进行处理.
public class TrimReqParamWrapper extends HttpServletRequestWrapper {

    LogTool logger = LogTool.getLogger(TrimReqParamWrapper.class);

    public TrimReqParamWrapper(HttpServletRequest request) {
        super(request);
        // 由于我们只做POST请求, 所以这里不做任何处理
    }


    /**
     * 重写getInputStream方法
     */
    @Override
    public ServletInputStream getInputStream() throws IOException {
        logger.debug("参数去空格处理");

   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值