Apache Wicket 学习(下载文件)续

为了充数,新开一页~~

 

这次记下的东西包括对 WebResponse 重写时注意的东西,以及在 HTTP 传递文件的时候,Response 头信息的使用。

 

在类: org.apache.wicket.protocol.http.WebResponse 中

 

有成员变量 private final HttpServletResponse httpServletResponse,但这个变量是 final 并且为 private

 

那根据功能扩展 WebResponse 的时候就直接使用带有 httpServletResponse 的构造方法来 生成新的类,不然在继续使用wicket框架的时候,wicket本身的一些方法会对 httpServletResponse 操作(因为毕竟最终还是 Request 和Response 在起作用,只是上面封装了一些东西,方便开发),而wicket虽然回去判断 httpServletResponse是不是空,但它不抛异常,这个都已经是底层的东西,关系到HTTP信息处理是否正常,竟然不抛异常?也许新的wicket版本会把这个我认为的漏洞填补吧。但对于新手来说,不注意这一点的话,很难找到出错的原因。

 

HTTP Response 在传递文件的时候会涉及如下的 Header 信息,这里是完整的 HTTP 的 Header

 

 

 


Content-TypeResponse MIME 内容类型,这里有时还会包含charset
Content-LengthResponse body 的长度 (8位字节的个数)
Content-Disposition

有了这个 浏览器就会 弹出个对话框,包括下载文件的名称,以让用户保存文件

Content-Disposition: attachment; filename=fname.ext

Transfer-Encoding

Response body 的格式

chunked, compress, deflate, gzip, identity

(在Wicket中,如果你将通过 Response 返回的 Stream 的长度设置为-1,那 wicket 就会将返回的 HTTP Response 中添加上

transfer-encoding: chunked)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值