-2
A
回答
1
我認爲你可以使用ServletFilter中,HttpServletResponse的包裝和包裝的PrintWriter。
1.創建java.io.PrintWriter中的子類
public class PrintWriterWrapper extends PrintWriter {
public PrintWriterWrapper(Writer out) {
super(out);
}
@Override
public void write(int c) {
super.write(c);
char ch = (char)c;
System.out.println(ch); //<-please change to use DB. and others too.
}
@Override
public void write(char[] buf, int off, int len) {
super.write(buf, off, len);
String str = new String(buf, off, len);
System.out.println(str);
}
@Override
public void write(String s, int off, int len) {
super.write(s, off, len);
System.out.println(s.substring(off, off+len));
}
}
請忽略其他的方法,如果你需要。
2.創建HttpServletResponse的包裝類
public class MyResponseWrapper extends HttpServletResponseWrapper {
public MyResponseWrapper(HttpServletResponse response) {
super(response);
}
@Override
public PrintWriter getWriter() throws IOException {
PrintWriter writer = super.getWriter();
PrintWriterWrapper wrapper = new PrintWriterWrapper(writer);
return wrapper;
}
}
3.創建ServletFilter中,並使用包裝
public class MyFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
MyResponseWrapper wrapper = new MyResponseWrapper((HttpServletResponse)res);
chain.doFilter(req, wrapper);
}
}
4.增加過濾器設置到web.xml
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>hoge.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
相關問題
- 1. 捕獲dis.dis結果
- 2. 捕獲MessageBox結果
- 3. 捕獲斷言聲明的結果?
- 4. 解析來自Bing的XHTML結果
- 5. 捕獲DSum空結果計算錯誤
- 6. 結果在網頁輸出中捕獲
- 7. 如何捕獲XMLHttpRequest onreadystatechange函數結果?
- 8. 如何捕獲MMI代碼結果?
- 9. 從捕捉道路獲取結果API
- 10. 如何從InvokeAsync捕獲結果
- 11. 我無法捕獲FMDB空結果集
- 12. 在變量中捕獲結果
- 13. 捕獲照片意圖結果代碼
- 14. 捕獲內聯表達式結果
- 15. 測試結果分析器插件沒有捕獲到結果
- 16. PDO捕捉結果
- 17. mongodb的結果爲空,但是如果(!結果)沒有捕獲它
- 18. C#任務獲得的結果或捕獲異常
- 19. 捕捉真/假結果
- 20. 如何捕獲使用Expect發送的命令的結果
- 21. 捕獲多個radiobox選擇的結果Django的
- 22. 捕獲一個的NSLog內的值結果
- 23. Phing SSH捕捉命令結果奇怪的結果
- 24. TCP通信中的無關數據包捕獲結果
- 25. 捕獲來自終端(外部處理)的結果
- 26. Python - 捕獲請求的個人價值結果
- 27. 捕獲詹金斯輸入步驟的結果
- 28. 如何在Rails動作中捕獲`git status`的結果?
- 29. JavaScript和Google Maps v3:tilesloaded()事件的捕獲結果?
- 30. 爲什麼添加的結果沒有在迭代中捕獲?
沒什麼,我我還在尋找,我不知道如何做到這一點。 – podrick 2014-10-02 11:15:58
我完全失去了 – podrick 2014-10-02 11:16:40
我發現這個帖子http://stackoverflow.com/questions/3323089/capture-generated-html-output-of-jsf-page但它不適合我,因爲我可以' t使用URL – podrick 2014-10-02 11:22:27