亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

捕獲并記錄響應正文

捕獲并記錄響應正文

慕慕森 2019-09-24 16:48:44
我有一個處理某些HTTP請求和響應的servlet。我想先記錄響應正文,然后再發送回客戶端。在將響應主體作為HttpServletResponse對象從Servlet 發送之前,有什么方法可以捕獲它?
查看完整描述

3 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

BalusC的替代答案 使用TeeOutputStream一次寫入兩個輸出流。


public void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    final PrintStream ps = new PrintStream(baos);


    chain.doFilter(req,new HttpServletResponseWrapper(res) {

         @Override

         public ServletOutputStream getOutputStream() throws IOException {

            return new DelegatingServletOutputStream(new TeeOutputStream(super.getOutputStream(), ps)

            );

         }

         @Override

         public  PrintWriter getWriter() throws IOException {

            return new PrintWriter(new DelegatingServletOutputStream (new TeeOutputStream(super.getOutputStream(), ps))

            );

         }

      });


    //Get Response body calling baos.toString();

}


查看完整回答
反對 回復 2019-09-24
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

也許Servlet過濾器可以為您提供幫助??梢詫⑵湟暈镠TTP的面向方面的編程。


查看完整回答
反對 回復 2019-09-24
  • 3 回答
  • 0 關注
  • 437 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號