spring MVC 利用拦截器或者或者过滤器 修改返回值有搞过的吗

qswdcs 2016-10-12 11:13:47
spring MVC 利用拦截器或者或者过滤器 修改返回值有搞过的吗
...全文
1717 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
来一杯西番莲 2018-06-27
  • 打赏
  • 举报
回复
AOP了解下
maradona1984 2018-06-26
  • 打赏
  • 举报
回复
引用 10 楼 ITczh 的回复:
楼主,你的问题解决了吗?我现在也遇到你和你一样的问题,想在拦截器afterCompletion方法中统一加密、

看我的回复
maradona1984 2018-06-26
  • 打赏
  • 举报
回复
如果还不理解,就搜下HttpMessageConverter
大概了解下springmvc序列化的实现
maradona1984 2018-06-26
  • 打赏
  • 举报
回复 1
序列化用的什么库?一般情况下用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);
}
weixin_40852944 2018-06-26
  • 打赏
  • 举报
回复
有父类吗?拿到父类里,统一处理一下?
  • 打赏
  • 举报
回复
楼主,你的问题解决了吗?我现在也遇到你和你一样的问题,想在拦截器afterCompletion方法中统一加密、
解开者 2016-10-25
  • 打赏
  • 举报
回复
引用 8 楼 boybaozi 的回复:
修改返回值,单纯拦截器或过滤器很难做到,aop可以
+1,注解配置的Controller里的方法,@Aspect是能切到的。环绕增强可以替换原有的返回值
boybaozi 2016-10-14
  • 打赏
  • 举报
回复
修改返回值,单纯拦截器或过滤器很难做到,aop可以
qswdcs 2016-10-12
  • 打赏
  • 举报
回复
引用 4 楼 rui888 的回复:
打个 response是你返回的数据,你自己可以修改和拦截什么关系。
因为是手机APP项目所以是想做到 把返回的数据 整体加密 免得被破译,现在就是返回值取不到~ 尴尬
qswdcs 2016-10-12
  • 打赏
  • 举报
回复
引用 4 楼 rui888 的回复:
打个 response是你返回的数据,你自己可以修改和拦截什么关系。
想在拦截器中做统一的处理的
tony4geek 2016-10-12
  • 打赏
  • 举报
回复
打个 response是你返回的数据,你自己可以修改和拦截什么关系。
qswdcs 2016-10-12
  • 打赏
  • 举报
回复
引用 2 楼 rui888 的回复:
参考这个
这个是 request 不是 response 的啊~ 而且springMVC 对 response 的返回值做了封装
tony4geek 2016-10-12
  • 打赏
  • 举报
回复
qswdcs 2016-10-12
  • 打赏
  • 举报
回复
Spring MVC 在使用 @ResponseBody 注解以后 不能再拦截器中获取 response 中的返回值 有遇到过的吗?
tony4geek 2016-10-12
  • 打赏
  • 举报
回复
引用 6 楼 qswdcs 的回复:
[quote=引用 4 楼 rui888 的回复:] 打个 response是你返回的数据,你自己可以修改和拦截什么关系。
因为是手机APP项目所以是想做到 把返回的数据 整体加密 免得被破译,现在就是返回值取不到~ 尴尬[/quote]参考这个代码

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧