0
我正試圖爲我們的客戶端訪問API時構建一個簡單的日誌記錄系統。我們使用Spring來連接控制器和處理程序。我正在研究Spring的Interceptor功能來編寫postHandle()方法。不幸的是,與我在這裏看到的所有代碼示例不同,例如,HttpServletResponse沒有getStatus()方法。我假設我們正在使用錯誤版本的Java或其他東西。從HTTPServletResponse獲取正文和響應代碼
我們需要來自HttpServletResponse對象的主體和響應代碼:如何獲取這些對象?
編輯:我們去與一個過濾器:
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
RichHttpServletResponse richResponse=new RichHttpServletResponse((HttpServletResponse)response);
chain.doFilter(request, richResponse);
}
RichHttpServletResponse需要servlet響應作爲其構造器的自變量和覆蓋的一些方法,如sendError()和通過對實際傳遞值servlet響應。 webmvc-config XML看起來像這樣:
<bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">
<sec:filter-chain-map path-type="ant">
<sec:filter-chain pattern="/**"
filters="requestObjectFilter" />
</sec:filter-chain-map>
</bean>
下面的bean爲def。
你的問題是雙重的。這複製您的第一個問題:http://stackoverflow.com/questions/3242236/capture-and-log-the-response-body這複製您的第二個問題:http://stackoverflow.com/questions/1302072/how-can -i-得到最HTTP狀態代碼-OUT-OF-A-ServletResponse的-IN-A-ServletFilter中 – BalusC