HTTP协议应用

// 设置页面不缓存
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
//上传文件
<form action="upjsp.jsp" enctype="MULTIPART/FORM-DATA" method=post ACCEPT-CHARSET="utf-8">


 在表单元素中 enctype 属性指定了传递给服务器的表单数据集编码的内容类型,它的默认值是“application/x-www-form-urlencoded”,用于通常的数据提交格式,enctype 属性有三个值: application/x-www-form-urlencoded,multipart/form-data, text/plain, 它们都属于MIME类型
上传二进制数据时需要multipart/form-data, 并必须把表单属性method设为post, ACCEPT-CHARSET属性是表单处理器能够处理的编码字符集,若没有指定该属性,表单默认是UNKNOWN

上传文件会在HTTP协议体中长传到服务器
打印request对象得到的流:
-----------------------------7d730ea40984
Content-Disposition: form-data; name="company"

zte
-----------------------------7d730ea40984
Content-Disposition: form-data; name="filename"; filename="D:/upload.text"
Content-Type: text/plain

jade test upload file. --注:上传文件的内容
-----------------------------7d730ea40984--

文件可以从这个流中分析出来

//下载文件:
需要通知浏览器传过来的是要下载的东东
  response.reset();
  response.setContentType("aplication/x-download");
  response.setHeader("Content-Disposition", "attachment; filename=imp.ff"); 

然后吧要下载的文件学到respose流里
ServletOutputStream sos=response.getOutputStream();

  while (i != -1) {
   sos.print((char) i);
   i = in.read();
  }

访问的时候就会提示下载了

//服务端的输出缓冲区
缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:
1.该JSP网页已完成信息的输出
2.输出缓冲区已满
3.JSP中调用了out.flush()或response.flushbuffer()

输出缓冲区的大小可以用:或response.setBufferSize()设置,如下:
1、设置输出缓冲区的大小为1KB。或response.setBufferSize(1);
2、设置输出缓冲区的大小为0,即不缓冲。或response.setBufferSize(0);

用response.getBufferSize()或out.getBufferSize()可取的输出缓冲区的大小,单位为字节.
用response.isCommitted()可检查看服务端是否已将数据输出到客户端. 如果返回值是TRUE则已将数据输出到客户端,是FALSE则还没有。

注意客户点是要接受到整个respose流,才会开始解析或提示下载
所以服务器端调用respose.flushBuffer()或response.getOutputStream().flush()都只是不会立即在页面上显示或提示下载的,但这样能解决服务器的内存

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值