寫過濾器遇到如下問題:普通表單可正常過濾,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
