今天在青苗谷交流群中有朋友问我怎么在spring拦截器中获取请求参数和controller responsebody 返回的数据。他想输出在日志,做监控用。然后经过自己调试,分析,给出解决办法。
用spring 拦截器preHandle回调函数中,获取前端传过来的参数。关键代码如下
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception { request.getParameterMap();//此处获得参数Map,可自行调试 return false; }
spring 拦截器在postHandle 中遇到遇到ResponseBody无法获取返回值,原因是热心的网友已经给出原因,点击查看
那要怎么解决呐?
- 在springMVC4版本以后,新加了一个@ControllerService注解。用此注解然后实现ResponseBodyAdvice接口可获取带有@responsebody的返回值,然后操作。具体用法自行百度