diff --git a/src/main/java/org/redkale/net/Response.java b/src/main/java/org/redkale/net/Response.java index 63e91a0be..386c8e4c4 100644 --- a/src/main/java/org/redkale/net/Response.java +++ b/src/main/java/org/redkale/net/Response.java @@ -189,6 +189,18 @@ public abstract class Response> { this.filter = filter; } + protected void thenEvent(Filter> filter) { + if (this.filter == null) { + this.filter = filter; + } else { + Filter f = this.filter; + while (f._next != null) { + f = f._next; + } + f._next = filter; + } + } + protected void thenEvent(Servlet servlet) { this.servlet = servlet; } diff --git a/src/main/java/org/redkale/net/http/HttpFilter.java b/src/main/java/org/redkale/net/http/HttpFilter.java index 77f11dced..5d7eb2465 100644 --- a/src/main/java/org/redkale/net/http/HttpFilter.java +++ b/src/main/java/org/redkale/net/http/HttpFilter.java @@ -19,7 +19,7 @@ import org.redkale.util.AnyValue; public abstract class HttpFilter extends Filter { //Server执行start后运行此方法 - public void postStart(HttpContext context, AnyValue config) { + protected void postStart(HttpContext context, AnyValue config) { } protected void setMethod(HttpRequest request, String method) { @@ -38,31 +38,44 @@ public abstract class HttpFilter extends Filter T setProperty(HttpRequest request, String name, T value) { + return request.setProperty(name, value); } - protected void setHeader(HttpRequest request, String name, String value) { - request.setHeader(name, value); + protected T getProperty(HttpRequest request, String name) { + return request.getProperty(name); + } + + protected void removeProperty(HttpRequest request, String name) { + request.removeProperty(name); } protected void addHeader(HttpRequest request, String name, String value) { request.addHeader(name, value); } - protected void removeParameter(HttpRequest request, String name) { - request.removeParameter(name); + protected void setHeader(HttpRequest request, String name, String value) { + request.setHeader(name, value); } protected void removeHeader(HttpRequest request, String name) { request.removeHeader(name); } - protected void removeAttribute(HttpRequest request, String name) { - request.removeAttribute(name); + protected void setParameter(HttpRequest request, String name, String value) { + request.setParameter(name, value); } - protected void removeProperty(HttpRequest request, String name) { - request.removeProperty(name); + protected void removeParameter(HttpRequest request, String name) { + request.removeParameter(name); } + + protected void setFilter(HttpResponse response, HttpFilter filter) { + response.setFilter(filter); + } + + protected void thenEvent(HttpResponse response, HttpFilter filter) { + response.thenEvent(filter); + } + } diff --git a/src/main/java/org/redkale/net/http/HttpResponse.java b/src/main/java/org/redkale/net/http/HttpResponse.java index abc5b0ca8..7a7e03fa1 100644 --- a/src/main/java/org/redkale/net/http/HttpResponse.java +++ b/src/main/java/org/redkale/net/http/HttpResponse.java @@ -20,6 +20,7 @@ import java.util.logging.*; import org.redkale.convert.*; import org.redkale.convert.json.*; import org.redkale.net.*; +import org.redkale.net.Filter; import org.redkale.service.RetResult; import org.redkale.util.*; import org.redkale.util.AnyValue.Entry; @@ -112,13 +113,13 @@ public class HttpResponse extends Response { httpCodes.put(414, "Request URI Too Long"); httpCodes.put(415, "Unsupported Media Type"); httpCodes.put(416, "Requested Range Not Satisfiable"); - httpCodes.put(417, "Expectation Failed"); + httpCodes.put(417, "Expectation Failed"); httpCodes.put(426, "Upgrade Required"); httpCodes.put(428, "Precondition Required"); httpCodes.put(429, "Too Many Requests"); httpCodes.put(431, "Request Header Fields Too Large"); httpCodes.put(451, "Unavailable For Legal Reasons"); - + httpCodes.put(500, "Internal Server Error"); httpCodes.put(501, "Not Implemented"); httpCodes.put(502, "Bad Gateway"); @@ -286,9 +287,18 @@ public class HttpResponse extends Response { } @Override - @SuppressWarnings("unchecked") + protected void setFilter(Filter filter) { + super.setFilter(filter); + } + + @Override protected void thenEvent(Servlet servlet) { - this.servlet = servlet; + super.thenEvent(servlet); + } + + @Override + protected void thenEvent(Filter filter) { + super.thenEvent(filter); } protected boolean isAutoOptions() {