Modifying the Response in Weblogic8.1

Modifying the Response in Weblogic8.1

看过一些中文资料在介绍filter的修改response的做法,但在tomcatweblogic环境使用时总有些麻烦。原因有二:

1.他们在文章中照搬了《More Servlets and JavaServer Pages一书中的例子代码,人家是用英文嘛,所以就没考虑中文的问题。

修改response的响应长度的代码是 response.setContentLength( responseString.length() );当响应中存在中文的时候就出麻烦了,responseString.length()返回的并不是想要得到的响应的字节长度,所以要使用responseString.getBytes().length确保得到的是修改后的响应正确长度。

2. 经过第一条的修改后是能够在 tomcat 下可以运行了,但在 weblogic8.1 中就不可以了。这是因为 weblogic 的实现方式有点特别, weblogic 在使用输出时是使用的 OutputStream writer 的方法,而不是《 More Servlets and JavaServer Pages 一书中所期待使用 PrintWriter tomcat 正是这么实现的)。那么在 weblogic 中实现就有点麻烦了,首先要自己实现一个 ServletOutputStream ,自己做个字节缓冲区。覆写 response getOutputStream 的方法让它返回自己实现的 ServletOutputStream 对象,而且在从字节缓冲区取出响应字符串时还要指定编码方式,否则会出现乱码哦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值