spring mvc当表单请求为application/json或enctype="multipart/form-data 过滤请求值参数,取不到请求参数问题
来源:互联网 发布:阿里云虚拟干嘛呢 编辑:程序博客网 时间:2024/06/06 22:30
1,此种情况form 非application/x-www-form-urlencoded类型
2,在spring-mvc.xml里
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="byteConverter" />
<!-- 自定义xss 字符过滤 -->
<ref bean="zhidingyiConverter" />
</list>
</property>
</bean>
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
</bean>
<!-- 自定义xss 字符过滤 -->
<bean id="zhidingyiConverter" class="com.fastcnt.credit.intercept.XssMappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
</bean>
<bean id="byteConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
</bean>
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView"/>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8" />
</beans>
3,在XssMappingJacksonHttpMessageConverter方法里重载readInternal
(XssMappingJacksonHttpMessageConverter此类为spring里的org.springframework.http.converter.json.MappingJacksonHttpMessageConverter)
重写readInternal(Class<?> clazz, HttpInputMessage inputMessage)方法即可
@Override
protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {
JavaType javaType = getJavaType(clazz);
try {
InputStream input = inputMessage.getBody();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line );
}
} catch (IOException e) {
e.printStackTrace();
} finally{
input.close();
}
System.out.println(sb.toString());
String body = JsonStrTrim(sb.toString());//自定义过滤
System.out.println(body);
InputStream is = new ByteArrayInputStream(body.getBytes());
return this.objectMapper.readValue(is, javaType);
}catch (JsonParseException ex) {
throw new HttpMessageNotReadableException("Could not read JSON: " + ex.getMessage(), ex);
}
}
- spring mvc当表单请求为application/json或enctype="multipart/form-data 过滤请求值参数,取不到请求参数问题
- enctype="multipart/form-data" 文件上传,获取form 表单参数的问题
- enctype="multipart/Form-data"取不到值
- enctype="multipart/Form-data"取不到值
- form表单设置enctype="multipart/form-data"后获取参数
- 表单提交 enctype="multipart/form-data"的时候 request.getparameter取值为空的问题
- enctype="multipart/form-data"中Form参数的获取
- form表单 enctype="multipart/form-data"
- form表单enctype="multipart/form-data"
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的问题
- enctype=“multipart/form-data”,Servlet获取参数
- enctype="multipart/form-data"表单传值问题
- 当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到
- 当提交带文件的的form(enctype="multipart/form-data")时,不能获得参数的解决办法
- spring put multipart/form-data 获取不到参数
- Oracle 12C优化器的巨大变化,上生产必读(下)
- Android 代码崩溃异常收集整理
- 知道这20个正则表达式,能让你少写1,000行代码
- ubuntu下连接win7的mysql
- JNI官方规范中文版——如何访问Java中的字段和方法
- spring mvc当表单请求为application/json或enctype="multipart/form-data 过滤请求值参数,取不到请求参数问题
- 搜狗图片页面爬虫脚本,批量下载图片
- 更改mysql 5.7数据库的数据存储位置
- 【USACO TRAINING】数字金字塔
- Spring MVC RESTFul Web Services
- Android调用系统相机的那些坑
- 开始前说点什么
- 在Django中使用Neo4j
- 成为程序界的叶问,你需要打败这十个人