servlet 中response.setHeader设置response HTTP 头失效问题解决

项目中需要在 servlet处理以后,将返回的内容进行gzip打包传输。

然后顺其自然的写成

 

for example:

byte [] b = {......};

 

response.getOutputStream().write(b);

response.setHeader("Content-Type","application/gzip");

response.setHeader("Content-Encoding","gzip");

response.setStatus(200);

 

但是进行抓包测试返回的结果,Content-Type以及Content-Encoding都没有设置起作用。

 

后来调整了一下输出顺序,就OK了。

byte [] b = {......};

 

response.setHeader("Content-Type","application/gzip");

response.setHeader("Content-Encoding","gzip");

response.getOutputStream().write(b);

response.setStatus(200);

 

其实就是先设置返回的内容类型,才可以。不然就默认text/html了。

 

posted @ 2012-11-25 21:20  汀州の夜  阅读(1295)  评论(0编辑  收藏  举报