参数校验

客户端传递json格式数据,spring mvc服务端接受并进行参数校验

江枫思渺然 提交于 2019-12-02 19:58:07
前端传来的参数是json格式的数据,并不是传统的表单提交,由于服务端使用spring mvc框架,首先想到了Spring mvc 自带的@RequestBody注解,直接将传递参数注入到处理方法的参数中, 但是这样遇到了一个问题,在使用拦截器对客户端传递参数进行校验时是没法直接通过request.getParameter("name")获取该对象的参数,只能通过request.getInputStream();将传递对象的body读出,解析json字符串,对参数进行处理, 拦截器的方法跑通了,到了具体的处理方法时,注入参数报错了 原因是,之前的在拦截器中的处理方法已经通过request.getInputStream()取出了输入流,参数解析时已经拿不到了,此时想到两种解决方法: 1.将所有的参数解析及参数校验逻辑写在每个方法中 2.让request.getInputStream()再次取值时还能取到 第一种方法,能够很快实现,但是会产生大量的重复代码 于是决定使用第二种方法,代码如下 import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import javax.servlet.http