JSP learning,被书上的代码高的晕忽忽的。
使用 XXFilter类+XXResponseWrapper类++XXOutputStream类,
XXFilter类截断请求,XXResponseWrapper类将请求包装覆盖,
将直接输出浏览器的数据写入XXOutputStream类的instance进行缓存,
也就是替换了原本writer的缓存。
public PrintWriter getWriter() throws IOException {
if (writer==null){
writer=new PrintWriter(new OutputStreamWriter(new XXOutputStream(response)));
}
return writer;
}
public ServletOutputStream getOutputStream(){
return XXOutputStream;
}
@Override
public void flushBuffer() throws IOException {
XXOutputStream.flush();
}