package com.doumee.core.servlet;
|
|
import javax.servlet.ServletOutputStream;
|
import javax.servlet.WriteListener;
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
|
/**
|
* 包含副本的输出流
|
* @author Eva.Caesar Liu
|
* @date 2023/03/21 14:49
|
*/
|
public class ServletDuplicateOutputStream extends ServletOutputStream {
|
|
private ServletOutputStream stream;
|
|
private ByteArrayOutputStream duplicate;
|
|
public ServletDuplicateOutputStream(ServletOutputStream servletOutputStream) {
|
this.stream = servletOutputStream;
|
this.duplicate = new ByteArrayOutputStream();
|
}
|
|
@Override
|
public boolean isReady() {
|
return stream.isReady();
|
}
|
|
@Override
|
public void setWriteListener(WriteListener writeListener) {
|
stream.setWriteListener(writeListener);
|
}
|
|
@Override
|
public void write(byte[] b) throws IOException {
|
stream.write(b);
|
duplicate.write(b);
|
}
|
|
@Override
|
public void write(byte[] b, int off, int len) throws IOException {
|
stream.write(b, off, len);
|
duplicate.write(b, off, len);
|
}
|
|
@Override
|
public void flush() throws IOException {
|
stream.flush();
|
duplicate.flush();
|
}
|
|
@Override
|
public void close() throws IOException {
|
stream.close();
|
duplicate.close();
|
}
|
|
@Override
|
public void write(int b) throws IOException {
|
stream.write(b);
|
duplicate.write(b);
|
}
|
|
public String getContent() {
|
return duplicate.toString();
|
}
|
}
|