1 HttpServletResponse概述

2 Response 运行过程

3 通过抓包工具抓取Http响应

4 响应行

5 设置响应头

set  和add的区别

6 重定向

需要完成分析‘

6 设置响应体

6.1 设置文本和乱码

        //设置response查询的码表
//response.setCharacterEncoding("UTF-8"); //通过一个头 Content-Type 告知客户端使用何种码表
//response.setHeader("Content-Type", "text/html;charset=UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter writer = response.getWriter();
//writer.write("hello response!!!");
writer.write("你好");

6.2 设置字节

6.3 文件下载

    //获得要下载的文件的名称
String filename = request.getParameter("filename");//a.flv //要下载的这个文件的类型-----客户端通过文件的MIME类型去区分类型
response.setContentType(this.getServletContext().getMimeType(filename));
//告诉客户端该文件不是直接解析 而是以附件形式打开(下载)
response.setHeader("Content-Disposition", "attachment;filename="+filename); //获取文件的绝对路径
String path = this.getServletContext().getRealPath("download/"+filename);
//获得该文件的输入流
InputStream in = new FileInputStream(path);
//获得输出流---通过response获得的输出流 用于向客户端写内容
ServletOutputStream out = response.getOutputStream();
//文件拷贝的模板代码
int len = ;
byte[] buffer = new byte[];
while((len=in.read(buffer))>){
out.write(buffer, , len);
} in.close();
//out.close();

6.4 文件下载(中文)

        //*******文件名称是中文的下载*******

        //获得要下载的文件的名称
String filename = request.getParameter("filename");//????.jpg
//解决获得中文参数的乱码----下节课讲
filename = new String(filename.getBytes("ISO8859-1"),"UTF-8");//美女.jpg //获得请求头中的User-Agent
String agent = request.getHeader("User-Agent");
//根据不同浏览器进行不同的编码
String filenameEncoder = "";
if (agent.contains("MSIE")) {
// IE浏览器
filenameEncoder = URLEncoder.encode(filename, "utf-8");
filenameEncoder = filenameEncoder.replace("+", " ");
} else if (agent.contains("Firefox")) {
// 火狐浏览器
BASE64Encoder base64Encoder = new BASE64Encoder();
filenameEncoder = "=?utf-8?B?"
+ base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
} else {
// 其它浏览器
filenameEncoder = URLEncoder.encode(filename, "utf-8");
} //要下载的这个文件的类型-----客户端通过文件的MIME类型去区分类型
response.setContentType(this.getServletContext().getMimeType(filename));
//告诉客户端该文件不是直接解析 而是以附件形式打开(下载)----filename="+filename 客户端默认对名字进行解码
response.setHeader("Content-Disposition", "attachment;filename="+filenameEncoder); //获取文件的绝对路径
String path = this.getServletContext().getRealPath("download/"+filename);
//获得该文件的输入流
InputStream in = new FileInputStream(path);
//获得输出流---通过response获得的输出流 用于向客户端写内容
ServletOutputStream out = response.getOutputStream();
//文件拷贝的模板代码
int len = ;
byte[] buffer = new byte[];
while((len=in.read(buffer))>){
out.write(buffer, , len);
} in.close();
//out.close();

7 response细节

最新文章

  1. C# DllImport用法和路径问题
  2. java.lang.Class
  3. Java NIO示例:多人网络聊天室
  4. vi 编辑器命令 (share)
  5. 《驾驭Core Data》 第二章 Core Data入门
  6. 存储过程中使用事务与try catch
  7. 在PHP中如何获取用户的真实IP
  8. 阅读《RobHess的SIFT源码分析:综述》笔记2
  9. vmware配置安装JDK、Tomcat以及项目部署
  10. WebService推送数据,数据结构应该怎样定义?
  11. sql为数字添加千分位(也就是钱的格式)
  12. RPC 调用简述
  13. 斯坦福大学自然语言处理第一课——引言(Introduction)
  14. Android Studio 学习(三) 广播
  15. JS中原型链中的prototype与_proto_的个人理解与详细总结
  16. python 解除装饰器,调用原本函数。
  17. protocol error, got 'n' as reply type byte + redis如何后台启动
  18. tf.expand_dims 来增加维度
  19. JavaScript中hasOwnProperty函数
  20. OC基础:属性.点语法.KVC 分类: ios学习 OC 2015-06-24 17:24 61人阅读 评论(0) 收藏

热门文章

  1. 思维构造,建图——cf1159E
  2. Spring boot配置Dubbo三种方式
  3. VMware的下载安装
  4. egret 篇——关于ios环境下微信浏览器的音频自动播放问题
  5. 服务器迁移部署OmsWeb
  6. <input> type 属性
  7. PAT甲级——【牛客练习题1002】
  8. 服务器IP配置功能实现小结
  9. mysql之sql优化
  10. myeclipse中tomcat内存大小的设置