404128 Add Vary headers rather than set them

This commit is contained in:
Greg Wilkins 2013-04-04 16:05:27 +11:00
parent df6e18cc00
commit 060389147b
3 changed files with 18 additions and 30 deletions

View File

@ -234,7 +234,7 @@ public abstract class AbstractCompressedStream extends ServletOutputStream
setHeader("Content-Encoding", _encoding);
if (_response.containsHeader("Content-Encoding"))
{
setHeader("Vary",_vary);
addHeader("Vary",_vary);
_out=_compressedOutputStream=createStream();
if (_out!=null)
{
@ -269,7 +269,7 @@ public abstract class AbstractCompressedStream extends ServletOutputStream
if (_out == null || _bOut != null)
{
if (sendVary)
setHeader("Vary",_vary);
addHeader("Vary",_vary);
if (_wrapper.getETag()!=null)
setHeader("ETag",_wrapper.getETag());
@ -341,6 +341,11 @@ public abstract class AbstractCompressedStream extends ServletOutputStream
return encoding == null?new PrintWriter(out):new PrintWriter(new OutputStreamWriter(out,encoding));
}
protected void addHeader(String name,String value)
{
_response.addHeader(name, value);
}
protected void setHeader(String name,String value)
{
_response.setHeader(name, value);

View File

@ -454,7 +454,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory
if (resource!=null && resource.exists() && !resource.isDirectory())
{
// Tell caches that response may vary by accept-encoding
response.setHeader(HttpHeaders.VARY,HttpHeaders.ACCEPT_ENCODING);
response.addHeader(HttpHeaders.VARY,HttpHeaders.ACCEPT_ENCODING);
// Does the client accept gzip?
String accept=request.getHeader(HttpHeaders.ACCEPT_ENCODING);

View File

@ -84,15 +84,6 @@ public class IncludableGzipFilter extends GzipFilter
{
return null;
}
@Override
protected void setHeader(String name, String value)
{
super.setHeader(name, value);
HttpServletResponse response = (HttpServletResponse)getResponse();
if (!response.containsHeader(name))
response.setHeader("org.eclipse.jetty.server.include." + name, value);
}
};
}
};
@ -111,15 +102,6 @@ public class IncludableGzipFilter extends GzipFilter
{
return new GZIPOutputStream(_response.getOutputStream(),_bufferSize);
}
@Override
protected void setHeader(String name, String value)
{
super.setHeader(name, value);
HttpServletResponse response = (HttpServletResponse)getResponse();
if (!response.containsHeader(name))
response.setHeader("org.eclipse.jetty.server.include." + name, value);
}
};
}
};
@ -138,15 +120,6 @@ public class IncludableGzipFilter extends GzipFilter
{
return new DeflaterOutputStream(_response.getOutputStream(),new Deflater(_deflateCompressionLevel, _deflateNoWrap));
}
@Override
protected void setHeader(String name, String value)
{
super.setHeader(name, value);
HttpServletResponse response = (HttpServletResponse)getResponse();
if (!response.containsHeader(name))
response.setHeader("org.eclipse.jetty.server.include." + name, value);
}
};
}
};
@ -176,6 +149,16 @@ public class IncludableGzipFilter extends GzipFilter
if (!response.containsHeader(name))
response.setHeader("org.eclipse.jetty.server.include."+name,value);
}
@Override
public void addHeader(String name, String value)
{
super.addHeader(name, value);
HttpServletResponse response = (HttpServletResponse)getResponse();
if (!response.containsHeader(name))
setHeader(name,value);
}
@Override
protected PrintWriter newWriter(OutputStream out, String encoding) throws UnsupportedEncodingException
{