今天在青苗谷交流羣中有朋友問我怎麼在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的返回值,然後操作。具體用法自行百度