responseWriter()

response.getWriter().write()与out.print()的区别

  • 1首先介绍下write()和print方法的区别:

    • 1)、write()仅支持输出字符类型数据,字符、字符数组、字符串等
    • 2)、print()可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节通过write(int c)方法被输出
  • 2.介绍response.getWriter()和out的区别:

    • 1)out和response.getWriter的类不一样,一个是java.io.PrintWriter,一个是jspWriter
    • 2)执行原理不同:JspWriter(rsponse.getWriter())相当于一个缓冲功能的printWriter,他不是直接将数据传输到页面,而是将数据刷新到response缓冲区后再输出
    • 3)out为jsp的内置对象,刷新jsp页面,自动初始化获得out对象,所以使用out对象需要刷新页面的,而response.getWriter()相应信息通过out对象输出到网页上,当相应结束时它自动被关闭,与jsp页面无关,无需刷新页面
    • 4)out的print()方法和print()方法在缓冲区溢出并且没有自动刷新时候回产生ioexception,而response.getWriter()方法的print和println中都一直ioexception异常的,不会产生ioexception
    • out.println在页面不能进行换行,如果换行只能输出html换行代码out.println("")
通过输出流输入二进制文件到前端
	bt为二进制byte[]
			response.setHeader("Content-Type", "image/jpeg");
			InputStream in = new ByteArrayInputStream(bt);
			OutputStream out = response.getOutputStream();
			try{
				byte[] buffer = new byte[1024];
				int length = 0;
				while ((length = in.read(buffer)) != -1) {
					out.write(buffer, 0, length);
				}
			}catch(Exception e){
				logger.error(e.getMessage());
			}finally{
				try {
					if(in!=null){
						in.close();
					}
					if(out!=null){
						out.flush();
						out.close();
					}
				} catch (IOException e) {
					logger.error(e.getMessage());
				}
			}
		

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值