博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对response进行装饰
阅读量:2397 次
发布时间:2019-05-10

本文共 1440 字,大约阅读时间需要 4 分钟。

实现压缩响应[对servlet输出进行压缩]

package cn.itcast.web.decorator;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.PrintWriter;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;//对response对象的装饰/包装public class MyResponse extends HttpServletResponseWrapper{	private HttpServletResponse response;	//缓存	private ByteArrayOutputStream bout = new ByteArrayOutputStream();	private PrintWriter pw;	public MyResponse(HttpServletResponse response) {		super(response);		this.response = response;	}	//重写父类方法,目的是将字节输出到缓存中去[字节]	public ServletOutputStream getOutputStream() throws IOException {		return new MyServletOutputStream(bout);	}	//重写父类方法,目的是将字符输出到缓存中去[字符]	public PrintWriter getWriter() throws IOException {		pw = new PrintWriter(new OutputStreamWriter(bout,"UTF-8"));		return pw;	}	//取得缓存中的数据	public byte[] getBuffer(){		if(pw!=null){			pw.flush();		}		return bout.toByteArray();	}}//带有缓存功能ServletOutputStreamclass MyServletOutputStream extends ServletOutputStream{	private ByteArrayOutputStream bout;	public MyServletOutputStream(ByteArrayOutputStream bout) {		this.bout = bout;	}	public void write(int b) throws IOException {	}	public void write(byte[] bytes) throws IOException {		//将字节数组的内容写入缓存		bout.write(bytes);		//确保所有字节数组内容进入缓存		bout.flush();	}}

转载于:https://my.oschina.net/u/2356176/blog/468017

你可能感兴趣的文章
Java 8 函数式编程入门之Lambda
查看>>
用高阶函数轻松实现Java对象的深度遍历
查看>>
WindowsApi+Easyx图形库的透明时钟
查看>>
Eclipse LUNA配置TomCat(非j2ee版本)
查看>>
树莓派安装mysql-srver报错 404 not found!
查看>>
Ubuntu 14.04LTS 下安装.net框架
查看>>
Eclipse 配置Groovy语言环境 && Java工程运行Groovy
查看>>
人工智能术语表
查看>>
Tensorflow Python API 翻译(sparse_ops)
查看>>
Tensorflow Python API 翻译(math_ops)(第一部分)
查看>>
Tensorflow Python API 翻译(math_ops)(第二部分)
查看>>
利用 TensorFlow 入门 Word2Vec
查看>>
使用数据驱动进行配对交易:简单交易策略
查看>>
课程---程序员炒股,如何计算股票投资组合的风险和收益
查看>>
人工智能资料库:第3辑(20170107)
查看>>
人工智能资料库:第20辑(20170129)
查看>>
人工智能资料库:第21辑(20170130)
查看>>
人工智能资料库:第22辑(20170131)
查看>>
人工智能资料库:第23辑(20170201)
查看>>
MongoDB-初体验
查看>>