HttpServletResponse
した後のresponseの内容を取りたい。
response.getWriter().print("hogehoge");
やりたいことは、ServletFilterでIN/OUTの値をログに落としたい。
誰か良い方法知りませんか?
※パケットキャプチャは無しで
- Wrapper側
public class ResponseWrapper extends HttpServletResponseWrapper {private final CharArrayWriter writer = new CharArrayWriter();
public ResponseWrapper(HttpServletResponse response) {
super(response);
}public PrintWriter getWriter() throws IOException {
return new PrintWriter(writer);
}public String toString() {
return writer.toString();
}
}
- Filter側 doFilter部
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
ResponseWrapper wrapper = new ResponseWrapper((HttpServletResponse)res);chain.doFilter(req,wrapper);
String resStr = wrapper.toString();
res.getWriter().print(resStr);}
追記
できました。
手元にソースが無いので明日書きます。