@Override protected void applyHeaders() { HttpServletResponse response = getNativeResponse(); MediaType contentType = getHeaders().getContentType(); if (response.getContentType() == null && contentType != null) { response.setContentType(contentType.toString()); } Charset charset = (contentType != null ? contentType.getCharset() : null); if (response.getCharacterEncoding() == null && charset != null) { response.setCharacterEncoding(charset.name()); } long contentLength = getHeaders().getContentLength(); if (contentLength != -1) { response.setContentLengthLong(contentLength); } }
private static ResponseFacade getResponseFacade(HttpServletResponse response) { if (response instanceof ResponseFacade) { return (ResponseFacade) response; } else if (response instanceof HttpServletResponseWrapper) { HttpServletResponseWrapper wrapper = (HttpServletResponseWrapper) response; HttpServletResponse wrappedResponse = (HttpServletResponse) wrapper.getResponse(); return getResponseFacade(wrappedResponse); } else { throw new IllegalArgumentException("Cannot convert [" + response.getClass() + "] to org.apache.catalina.connector.ResponseFacade"); } }
@Override protected void applyHeaders() { HttpServletResponse response = getNativeResponse(); MediaType contentType = getHeaders().getContentType(); if (response.getContentType() == null && contentType != null) { response.setContentType(contentType.toString()); } Charset charset = (contentType != null ? contentType.getCharset() : null); if (response.getCharacterEncoding() == null && charset != null) { response.setCharacterEncoding(charset.name()); } long contentLength = getHeaders().getContentLength(); if (contentLength != -1) { response.setContentLengthLong(contentLength); } }
TomcatServerHttpResponse(HttpServletResponse response, AsyncContext context, DataBufferFactory factory, int bufferSize, ServletServerHttpRequest request) throws IOException { super(createTomcatHttpHeaders(response), response, context, factory, bufferSize, request); }
@Override protected ServletServerHttpResponse createResponse(HttpServletResponse response, AsyncContext asyncContext, ServletServerHttpRequest request) throws IOException { return new TomcatServerHttpResponse( response, asyncContext, getDataBufferFactory(), getBufferSize(), request); }
@Override protected ServerHttpResponse createResponse(HttpServletResponse response, AsyncContext cxt) throws IOException { return new TomcatServerHttpResponse(response, cxt, getDataBufferFactory(), getBufferSize()); }
@Override protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException { ByteBuffer input = dataBuffer.asByteBuffer(); int len = input.remaining(); ServletResponse response = getNativeResponse(); ((CoyoteOutputStream) response.getOutputStream()).write(input); return len; } }
TomcatServerHttpResponse(HttpServletResponse response, AsyncContext context, DataBufferFactory factory, int bufferSize, ServletServerHttpRequest request) throws IOException { super(createTomcatHttpHeaders(response), response, context, factory, bufferSize, request); }
@Override protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException { ByteBuffer input = dataBuffer.asByteBuffer(); int len = input.remaining(); ServletResponse response = getNativeResponse(); ((CoyoteOutputStream) response.getOutputStream()).write(input); return len; } }
private static HttpHeaders createTomcatHttpHeaders(HttpServletResponse response) { ResponseFacade responseFacade = getResponseFacade(response); org.apache.catalina.connector.Response connectorResponse = (org.apache.catalina.connector.Response) ReflectionUtils.getField(COYOTE_RESPONSE_FIELD, responseFacade); Assert.state(connectorResponse != null, "No Tomcat connector response"); Response tomcatResponse = connectorResponse.getCoyoteResponse(); TomcatHeadersAdapter headers = new TomcatHeadersAdapter(tomcatResponse.getMimeHeaders()); return new HttpHeaders(headers); }
@Override protected ServletServerHttpResponse createResponse(HttpServletResponse response, AsyncContext asyncContext, ServletServerHttpRequest request) throws IOException { return new TomcatServerHttpResponse( response, asyncContext, getDataBufferFactory(), getBufferSize(), request); }
@Override protected void applyHeaders() { HttpServletResponse response = getNativeResponse(); MediaType contentType = getHeaders().getContentType(); if (response.getContentType() == null && contentType != null) { response.setContentType(contentType.toString()); } Charset charset = (contentType != null ? contentType.getCharset() : null); if (response.getCharacterEncoding() == null && charset != null) { response.setCharacterEncoding(charset.name()); } long contentLength = getHeaders().getContentLength(); if (contentLength != -1) { response.setContentLengthLong(contentLength); } }
private static ResponseFacade getResponseFacade(HttpServletResponse response) { if (response instanceof ResponseFacade) { return (ResponseFacade) response; } else if (response instanceof HttpServletResponseWrapper) { HttpServletResponseWrapper wrapper = (HttpServletResponseWrapper) response; HttpServletResponse wrappedResponse = (HttpServletResponse) wrapper.getResponse(); return getResponseFacade(wrappedResponse); } else { throw new IllegalArgumentException("Cannot convert [" + response.getClass() + "] to org.apache.catalina.connector.ResponseFacade"); } }
TomcatServerHttpResponse(HttpServletResponse response, AsyncContext context, DataBufferFactory factory, int bufferSize, ServletServerHttpRequest request) throws IOException { super(createTomcatHttpHeaders(response), response, context, factory, bufferSize, request); }
@Override protected ServletServerHttpResponse createResponse(HttpServletResponse response, AsyncContext asyncContext, ServletServerHttpRequest request) throws IOException { return new TomcatServerHttpResponse( response, asyncContext, getDataBufferFactory(), getBufferSize(), request); }
private static HttpHeaders createTomcatHttpHeaders(HttpServletResponse response) { ResponseFacade responseFacade = getResponseFacade(response); org.apache.catalina.connector.Response connectorResponse = (org.apache.catalina.connector.Response) ReflectionUtils.getField(COYOTE_RESPONSE_FIELD, responseFacade); Assert.state(connectorResponse != null, "No Tomcat connector response"); Response tomcatResponse = connectorResponse.getCoyoteResponse(); TomcatHeadersAdapter headers = new TomcatHeadersAdapter(tomcatResponse.getMimeHeaders()); return new HttpHeaders(headers); }
@Override protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException { ByteBuffer input = dataBuffer.asByteBuffer(); int len = input.remaining(); ServletResponse response = getNativeResponse(); ((CoyoteOutputStream) response.getOutputStream()).write(input); return len; } }