
net.dongliu.emvc.render.HttpResult Maven / Gradle / Ivy
The newest version!
package net.dongliu.emvc.render;
import com.google.common.collect.ImmutableList;
import lombok.Setter;
import lombok.experimental.Accessors;
import javax.annotation.Nullable;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* Action result
*
* @author Liu Dong
*/
@Accessors(fluent = true)
public abstract class HttpResult {
@Setter
private int statusCode = 200;
@Setter
private Collection extends Map.Entry> headers = ImmutableList.of();
@Setter
@Nullable
private String contentType;
@Setter
@Nullable
private String charset;
@Setter
protected T value;
@Setter
private List cookieList = ImmutableList.of();
protected HttpResult() {
}
/**
* Write result to response
*/
public void sendResponse(HttpServletRequest request, HttpServletResponse response) throws IOException {
writeHeaders(response);
writeBody(response);
}
/**
* Write response body
*/
public abstract void writeBody(HttpServletResponse response) throws IOException;
protected void writeHeaders(HttpServletResponse response) {
response.setStatus(statusCode);
for (Map.Entry header : headers) {
response.addHeader(header.getKey(), header.getValue());
}
if (contentType != null) {
response.setContentType(contentType);
}
if (charset != null) {
response.setCharacterEncoding(charset);
}
cookieList.forEach(response::addCookie);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy