在这里, 以去空格为例来进行说明.
背景:在项目中, 经常会遇到前端往后端传参会有字符串参数首尾有空格的情况, 一般如果字段比较少, 或者接口比较少, 自行在controller位置处理一下, 是没有问题的. 就是重复代码多, 工作重复, 没劲.
所以在这里以去空格说明如何处理post方法里的参数首尾空格问题.
- 自定义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() {
}
}
- 对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("参数去空格处理");