下载功能实现和HttpServletResponse对象的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了下载功能实现和HttpServletResponse对象的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1804字,纯文字阅读大概需要3分钟。
内容图文
下载功能的实现
注意下载的时候尽量用OutputStream,因为它是处理字节序列的,可以处理任何类型的数据,而writer是处理字符序列的,只能处理字符。
1.设置响应头,告诉浏览器需要下载该响应的内容
response.setHeader("content-disposition", “attachment;filename="+filename);
2.创建一个输入流一般是文件类型的输入流即fileInputStream。
3.创建一个缓冲的区域,进行缓冲。
4.通过响应的getOutputStream获取输出流
5.将缓冲中的数据写入到输出流当中。
下载中文的文件时
在下载中文文件的时候,文件名往往会出现乱码的现象,这时候我们需要用java.net.RULEncoder.encode方法对文件名进行编码,这样客户端收到文件才不会显示乱码。
HttpServletResponse对象
该对象封装了向客户端发送数据、响应头、响应状态码的方法。
向客户端发送数据
getOutputStream()
getWriter()
向客户端发送响应头
void addDateHeader(string name, long value)
void addHeader(string name,string value)
void addIntHeader(string name,int value)
boolean containsHeader(string name),检验是否这个name在响应头中。
void setDateHeader(string name,long date)
void setHeader(String name,string value)
void setIntHeader(string name, int value)
向客户端发送响应状态码
void setStatus(int code_number)
getOutputStream
需要注意的是,getoutputStream输出流写入的是字节序列,所以在写入英文字符或者中文的时候,需要将其转为字节序列进行写入,而客户端在接收到该字节流的时候,要用相应的编码方式对字节流进行编码,否则会出现错误。但客户端如何知道我们的编码方式?这就需要在响应头中加入如下内容,告诉客户端用什么样的方式对响应数据进行编码。
response.setHeader(“content-type","text/html;charset=utf-8");
getWriter
需要注意的是,该方法获取的输出流可以直接写入字符或数字数据,但是对于中文还是需要将其转为字节数组。但是该方法在输出中文的时候,需要先指定输出到客户端的编码方式。如果希望服务器写入什么客户端就输出什么就需要将数据转为字符串的形式(对于数字)。response.setCharacterEncoding("UTF-8");
内容总结
以上是互联网集市为您收集整理的下载功能实现和HttpServletResponse对象的方法全部内容,希望文章能够帮你解决下载功能实现和HttpServletResponse对象的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。