This commit is contained in:
wentch
2016-01-14 09:33:22 +08:00
parent be2b55bffc
commit 794cbac499
2 changed files with 16 additions and 16 deletions

View File

@@ -109,7 +109,7 @@ public abstract class BasedHttpServlet extends HttpServlet {
response.finish(ce.getBuffers()); response.finish(ce.getBuffers());
return; return;
} }
response.setInterceptor(entry.cacheInterceptor); response.setBufferHandler(entry.cacheInterceptor);
} }
entry.servlet.execute(request, response); entry.servlet.execute(request, response);
} }
@@ -274,7 +274,7 @@ public abstract class BasedHttpServlet extends HttpServlet {
return this.moduleid != 0 || this.actionid != 0; return this.moduleid != 0 || this.actionid != 0;
} }
public final HttpResponse.Interceptor cacheInterceptor; public final HttpResponse.BufferHandler cacheInterceptor;
public final ConcurrentHashMap<String, CacheEntry> cache; public final ConcurrentHashMap<String, CacheEntry> cache;

View File

@@ -38,9 +38,9 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
* HttpResponse.finish 方法内调用 * HttpResponse.finish 方法内调用
* *
*/ */
public static interface Interceptor { public static interface BufferHandler {
public ByteBuffer[] invoke(final HttpResponse response, final ByteBuffer[] buffers); public ByteBuffer[] execute(final HttpResponse response, final ByteBuffer[] buffers);
} }
private static final ByteBuffer buffer304 = ByteBuffer.wrap("HTTP/1.1 304 Not Modified\r\n\r\n".getBytes()).asReadOnlyBuffer(); private static final ByteBuffer buffer304 = ByteBuffer.wrap("HTTP/1.1 304 Not Modified\r\n\r\n".getBytes()).asReadOnlyBuffer();
@@ -115,7 +115,7 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
private boolean headsended = false; private boolean headsended = false;
private Interceptor interceptor; private BufferHandler bufferHandler;
//------------------------------------------------ //------------------------------------------------
private final DefaultAnyValue header = new DefaultAnyValue(); private final DefaultAnyValue header = new DefaultAnyValue();
@@ -150,7 +150,7 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
this.cookies = null; this.cookies = null;
this.headsended = false; this.headsended = false;
this.header.clear(); this.header.clear();
this.interceptor = null; this.bufferHandler = null;
return super.recycle(); return super.recycle();
} }
@@ -221,8 +221,8 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
return; return;
} }
if (context.getCharset() == null) { if (context.getCharset() == null) {
if (interceptor != null) { if (bufferHandler != null) {
interceptor.invoke(this, new ByteBuffer[]{ByteBuffer.wrap(Utility.encodeUTF8(obj))}); bufferHandler.execute(this, new ByteBuffer[]{ByteBuffer.wrap(Utility.encodeUTF8(obj))});
} }
final char[] chars = Utility.charArray(obj); final char[] chars = Utility.charArray(obj);
this.contentLength = Utility.encodeUTF8Length(chars); this.contentLength = Utility.encodeUTF8Length(chars);
@@ -236,8 +236,8 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
} }
} else { } else {
ByteBuffer buffer = context.getCharset().encode(obj); ByteBuffer buffer = context.getCharset().encode(obj);
if (interceptor != null) { if (bufferHandler != null) {
ByteBuffer[] bufs = interceptor.invoke(this, new ByteBuffer[]{buffer}); ByteBuffer[] bufs = bufferHandler.execute(this, new ByteBuffer[]{buffer});
if (bufs != null) buffer = bufs[0]; if (bufs != null) buffer = bufs[0];
} }
this.contentLength = buffer.remaining(); this.contentLength = buffer.remaining();
@@ -289,8 +289,8 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
@Override @Override
public void finish(boolean kill, ByteBuffer... buffers) { public void finish(boolean kill, ByteBuffer... buffers) {
if (interceptor != null) { if (bufferHandler != null) {
ByteBuffer[] bufs = interceptor.invoke(this, buffers); ByteBuffer[] bufs = bufferHandler.execute(this, buffers);
if (bufs != null) buffers = bufs; if (bufs != null) buffers = bufs;
} }
if (kill) refuseAlive(); if (kill) refuseAlive();
@@ -504,12 +504,12 @@ public class HttpResponse<R extends HttpRequest> extends Response<R> {
this.contentLength = contentLength; this.contentLength = contentLength;
} }
public Interceptor getInterceptor() { public BufferHandler getBufferHandler() {
return interceptor; return bufferHandler;
} }
public void setInterceptor(Interceptor interceptor) { public void setBufferHandler(BufferHandler bufferHandler) {
this.interceptor = interceptor; this.bufferHandler = bufferHandler;
} }
protected final class TransferFileHandler implements CompletionHandler<Integer, ByteBuffer> { protected final class TransferFileHandler implements CompletionHandler<Integer, ByteBuffer> {