HttpResponse

This commit is contained in:
redkale
2024-01-19 15:59:31 +08:00
parent 4f34f1fd2e
commit ef985e2aef
3 changed files with 50 additions and 15 deletions

View File

@@ -189,6 +189,18 @@ public abstract class Response<C extends Context, R extends Request<C>> {
this.filter = filter; this.filter = filter;
} }
protected void thenEvent(Filter<C, R, Response<C, R>> 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) { protected void thenEvent(Servlet servlet) {
this.servlet = servlet; this.servlet = servlet;
} }

View File

@@ -19,7 +19,7 @@ import org.redkale.util.AnyValue;
public abstract class HttpFilter extends Filter<HttpContext, HttpRequest, HttpResponse> { public abstract class HttpFilter extends Filter<HttpContext, HttpRequest, HttpResponse> {
//Server执行start后运行此方法 //Server执行start后运行此方法
public void postStart(HttpContext context, AnyValue config) { protected void postStart(HttpContext context, AnyValue config) {
} }
protected void setMethod(HttpRequest request, String method) { protected void setMethod(HttpRequest request, String method) {
@@ -38,31 +38,44 @@ public abstract class HttpFilter extends Filter<HttpContext, HttpRequest, HttpRe
request.setLocale(locale); request.setLocale(locale);
} }
protected void setParameter(HttpRequest request, String name, String value) { protected <T> T setProperty(HttpRequest request, String name, T value) {
request.setParameter(name, value); return request.setProperty(name, value);
} }
protected void setHeader(HttpRequest request, String name, String value) { protected <T> T getProperty(HttpRequest request, String name) {
request.setHeader(name, value); return request.getProperty(name);
}
protected void removeProperty(HttpRequest request, String name) {
request.removeProperty(name);
} }
protected void addHeader(HttpRequest request, String name, String value) { protected void addHeader(HttpRequest request, String name, String value) {
request.addHeader(name, value); request.addHeader(name, value);
} }
protected void removeParameter(HttpRequest request, String name) { protected void setHeader(HttpRequest request, String name, String value) {
request.removeParameter(name); request.setHeader(name, value);
} }
protected void removeHeader(HttpRequest request, String name) { protected void removeHeader(HttpRequest request, String name) {
request.removeHeader(name); request.removeHeader(name);
} }
protected void removeAttribute(HttpRequest request, String name) { protected void setParameter(HttpRequest request, String name, String value) {
request.removeAttribute(name); request.setParameter(name, value);
} }
protected void removeProperty(HttpRequest request, String name) { protected void removeParameter(HttpRequest request, String name) {
request.removeProperty(name); request.removeParameter(name);
} }
protected void setFilter(HttpResponse response, HttpFilter filter) {
response.setFilter(filter);
}
protected void thenEvent(HttpResponse response, HttpFilter filter) {
response.thenEvent(filter);
}
} }

View File

@@ -20,6 +20,7 @@ import java.util.logging.*;
import org.redkale.convert.*; import org.redkale.convert.*;
import org.redkale.convert.json.*; import org.redkale.convert.json.*;
import org.redkale.net.*; import org.redkale.net.*;
import org.redkale.net.Filter;
import org.redkale.service.RetResult; import org.redkale.service.RetResult;
import org.redkale.util.*; import org.redkale.util.*;
import org.redkale.util.AnyValue.Entry; import org.redkale.util.AnyValue.Entry;
@@ -112,13 +113,13 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
httpCodes.put(414, "Request URI Too Long"); httpCodes.put(414, "Request URI Too Long");
httpCodes.put(415, "Unsupported Media Type"); httpCodes.put(415, "Unsupported Media Type");
httpCodes.put(416, "Requested Range Not Satisfiable"); httpCodes.put(416, "Requested Range Not Satisfiable");
httpCodes.put(417, "Expectation Failed"); httpCodes.put(417, "Expectation Failed");
httpCodes.put(426, "Upgrade Required"); httpCodes.put(426, "Upgrade Required");
httpCodes.put(428, "Precondition Required"); httpCodes.put(428, "Precondition Required");
httpCodes.put(429, "Too Many Requests"); httpCodes.put(429, "Too Many Requests");
httpCodes.put(431, "Request Header Fields Too Large"); httpCodes.put(431, "Request Header Fields Too Large");
httpCodes.put(451, "Unavailable For Legal Reasons"); httpCodes.put(451, "Unavailable For Legal Reasons");
httpCodes.put(500, "Internal Server Error"); httpCodes.put(500, "Internal Server Error");
httpCodes.put(501, "Not Implemented"); httpCodes.put(501, "Not Implemented");
httpCodes.put(502, "Bad Gateway"); httpCodes.put(502, "Bad Gateway");
@@ -286,9 +287,18 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
} }
@Override @Override
@SuppressWarnings("unchecked") protected void setFilter(Filter filter) {
super.setFilter(filter);
}
@Override
protected void thenEvent(Servlet servlet) { protected void thenEvent(Servlet servlet) {
this.servlet = servlet; super.thenEvent(servlet);
}
@Override
protected void thenEvent(Filter filter) {
super.thenEvent(filter);
} }
protected boolean isAutoOptions() { protected boolean isAutoOptions() {