写过滤器遇到如下问题:普通表单可正常过滤,multipart/form-data类型表单无法过滤提交的内容
修改如下后正常
1 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 2 throws IOException, ServletException { 3 HttpServletRequest httpRequest = (HttpServletRequest) request; 4 String enctype = httpRequest.getContentType(); 5 if (StringUtils.isNotBlank(enctype) && enctype.contains("multipart/form-data")) { 6 CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver( 7 httpRequest.getSession().getServletContext()); 8 MultipartHttpServletRequest multipartRequest = commonsMultipartResolver.resolveMultipart(httpRequest); 9 10 XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(multipartRequest); 11 chain.doFilter(xssRequest, response); 12 } else { 13 XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(httpRequest); 14 chain.doFilter(xssRequest, response); 15 } 16 }
参考资料:
1.post multipart/form-data 类型表单如何获取File外其他参数 http://blog.csdn.net/u012195214/article/details/73308577
2.springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题 http://blog.csdn.net/qq_22956867/article/details/51437905