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

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

尋找一個使用servlet過濾器將內容插入響應中的示例

尋找一個使用servlet過濾器將內容插入響應中的示例

飲歌長嘯 2019-11-14 10:07:12
我一直在搜索網絡和stackoverflow,以獲取有人使用servlet過濾器將內容插入響應中的示例,但只能找到人們捕獲/壓縮輸出和/或更改標題的示例。我的目標是在所有HTML響應的結束</ body>之前添加一塊HTML。我正在研究一種擴展HttpServletResponseWrapper以使用我自己的PrintWriter,然后覆蓋其上的write方法的解決方案。在write方法內部,我存儲了最后7個字符,以查看其是否等于結束body標簽,然后在繼續其余文檔的正常寫入操作之前,先編寫HTML塊加上close body標簽。我覺得一定有人已經解決了這個問題,而且可能比我更優雅。我將感謝有關如何使用servlet過濾器將內容插入響應的任何示例。更新響應評論,我還嘗試從http://www.oracle.com/technetwork/java/filters-137243.html實現CharResponseWrapper 。這是我的代碼:PrintWriter out = response.getWriter();CharResponseWrapper wrappedResponse = new CharResponseWrapper(        (HttpServletResponse)response);chain.doFilter(wrappedRequest, wrappedResponse);String s = wrappedResponse.toString();if (wrappedResponse.getContentType().equals("text/html") &&        StringUtils.isNotBlank(s)) {    CharArrayWriter caw = new CharArrayWriter();    caw.write(s.substring(0, s.indexOf("</body>") - 1));    caw.write("WTF</body></html>");    response.setContentLength(caw.toString().length());    out.write(caw.toString());}else {    out.write(wrappedResponse.toString());}out.close();我也在包裝請求,但是該代碼有效,并且不應影響響應。
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 363 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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