[size=large][align=center]关于HTTP协议的图片传输注意事项[/align][/size]
在编写Http servlet 时,有时要用到 HttpServletResponse 返回动态生成的图片信息。此时,务必注意Http response head中两个属性的设置,一个是contentType,一个是contentLength。
正确的设置contentType属性,能保证不同厂商各个浏览器访问明确放回的信息是一个图像,而不是其它的二进制流,否则可能出现乱码显示或者提示用户下载二进制文件图像请求时不出现链接超时异常。
标识contentLength属性能告诉浏览器,图像的具体大小,IO流到什么位置结束,否则在一些浏览器中,输入流会一直阻塞等待并不存在的“未结束数据”,最终造成io异常。在多线程情况下,服务端也容易出现线程锁死。
在编写Http servlet 时,有时要用到 HttpServletResponse 返回动态生成的图片信息。此时,务必注意Http response head中两个属性的设置,一个是contentType,一个是contentLength。
正确的设置contentType属性,能保证不同厂商各个浏览器访问明确放回的信息是一个图像,而不是其它的二进制流,否则可能出现乱码显示或者提示用户下载二进制文件图像请求时不出现链接超时异常。
标识contentLength属性能告诉浏览器,图像的具体大小,IO流到什么位置结束,否则在一些浏览器中,输入流会一直阻塞等待并不存在的“未结束数据”,最终造成io异常。在多线程情况下,服务端也容易出现线程锁死。