java后台使用Spring对响应内容进行全局加密解密

来源:07素材网 04月08日 13:34
大部分人的第一反应是通过 Spring 拦截器(Interceptor)中的postHandler方法处理。实际这是行不通的,因为当程序运行到该方法,是在返回数据之后,渲染页面之前,所以这时候 Response 中的输出流已经关闭了,自然无法在对返回数据进行处理。

其实这个问题用几行代码就可以搞定,因为 Spring 提供了非常丰富的扩展支持,无论是之前提到的Interceptor和MethodArgumentResolver,还是接下来要提到的HttpMessageConverter。

在 Spring MVC 的 Controller 层经常会用到@RequestBody和@ResponseBody,通过这两个注解,可以在 Controller 中直接使用 Java 对象作为请求参数和返回内容,而完成这之间转换作用的便是HttpMessageConverter。

HttpMessageConverter接口提供了 5 个方法:

canRead:判断该转换器是否能将请求内容转换成 Java 对象
canWrite:判断该转换器是否可以将 Java 对象转换成返回内容
getSupportedMediaTypes:获得该转换器支持的 MediaType 类型
read:读取请求内容并转换成 Java 对象
write:将 Java 对象转换后写入返回内容

其中read和write方法的参数分别有有HttpInputMessage和HttpOutputMessage对象,这两个对象分别代表着一次 Http 通讯中的请求和响应部分,可以通过getBody方法获得对应的输入流和输出流。

具体步骤:这里使用的springBoot的方法进行配置

具体使用的springBoot的方法进行配置:https://suxiexingchen.github.io/2019/08/21/10/
————————————————
版权声明:本文为CSDN博主「馒头花卷儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/suxiexingchen/java/article/details/85621491
原文出处:https://blog.csdn.net/suxiexingchen/article/details/85621491
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。

头条

在使用SQLite3时遇到的几个坑

在使用SQLite3时遇到的几个坑

《本打算在SQLite3数据库里执行一个查询语句,使用的是php语言,起初遇到的是权限问题: permission denied,因为SQLite3数据库文件和PHP执行者属于两个不同的用户,首先需要对这个文件执行mode 777的权限开放,然后,又遇到了下面这样的PHP错误