spring MVC 利用拦截器或者或者过滤器 修改返回值有搞过的吗 spring MVC 利用拦截器或者或者过滤器 修改返回值有搞过的吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Spring MVC 在使用 @ResponseBody 注解以后 不能再拦截器中获取 response 中的返回值 有遇到过的吗? 这个是 request 不是 response 的啊~ 而且springMVC 对 response 的返回值做了封装 打个 response是你返回的数据,你自己可以修改和拦截什么关系。 因为是手机APP项目所以是想做到 把返回的数据 整体加密 免得被破译,现在就是返回值取不到~ 尴尬 因为是手机APP项目所以是想做到 把返回的数据 整体加密 免得被破译,现在就是返回值取不到~ 尴尬参考这个代码 修改返回值,单纯拦截器或过滤器很难做到,aop可以 +1,注解配置的Controller里的方法,@Aspect是能切到的。环绕增强可以替换原有的返回值 楼主,你的问题解决了吗?我现在也遇到你和你一样的问题,想在拦截器afterCompletion方法中统一加密、 序列化用的什么库?一般情况下用fastjson的就是FastJsonHttpMessageConverter,用jackson就是MappingJacksonHttpMessageConverter继承这个类,然后重写writeInternal即可,比如下面的是fastjson的,Object obj是你要序列化的对象,你想干啥就能干啥,是否理解?jackson也是类似,自己看下源码稍作修改即可 protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { HttpHeaders headers = outputMessage.getHeaders(); OutputStream out = outputMessage.getBody(); int len = JSON.writeJSONString(out, // fastJsonConfig.getCharset(), // obj, // fastJsonConfig.getSerializeConfig(), // fastJsonConfig.getSerializeFilters(), // fastJsonConfig.getDateFormat(), // JSON.DEFAULT_GENERATE_FEATURE, // fastJsonConfig.getSerializerFeatures()); headers.setContentLength(len); } 如果还不理解,就搜下HttpMessageConverter大概了解下springmvc序列化的实现 AOP了解下 新手求助 怎样判断数字字符串中是否包含字母? 求空间内到原点坐标(代码写好了就是错了帮我指正下谢谢) 请问如何写一个含有vb控件的excel文件啊? 熟读TIJ可以找到工作没有啊 关于byte 型的数据提问 请教递归调用出现堆栈溢出异常的处理。 !!!如何安装javaMail! java中有像C++中指向函数的指针这种东西吗? 也是关于tomcat设置的问题简单 用java通过REST方式连接Gremlin问题 java 关于volatile读操作与volatile修饰引用类型变量的问题?
继承这个类,然后重写writeInternal即可,比如下面的是fastjson的,Object obj是你要序列化的对象,你想干啥就能干啥,是否理解?jackson也是类似,自己看下源码稍作修改即可 protected void writeInternal(Object obj, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
HttpHeaders headers = outputMessage.getHeaders();
OutputStream out = outputMessage.getBody();
int len = JSON.writeJSONString(out, //
fastJsonConfig.getCharset(), //
obj, //
fastJsonConfig.getSerializeConfig(), //
fastJsonConfig.getSerializeFilters(), //
fastJsonConfig.getDateFormat(), //
JSON.DEFAULT_GENERATE_FEATURE, //
fastJsonConfig.getSerializerFeatures());
headers.setContentLength(len);
}
大概了解下springmvc序列化的实现