Java-ServletOutputStream
/**
* Provides an output stream for sending binary data to the
* client. A <code>ServletOutputStream</code> object is normally retrieved
* via the {@link ServletResponse#getOutputStream} method.
*
* <p>This is an abstract class that the servlet container implements.
* Subclasses of this class
* must implement the <code>java.io.OutputStream.write(int)</code>
* method.
*
*
* @author Various
* @version $Version$
*
* @see ServletResponse
*
*/
//提供一个输出流来发送二进制数据给客户端,Servlet容器会实现这个类,这个类的子类一定要实现java.io.OutputStream.write(int)方法
public abstract class ServletOutputStream extends OutputStream {
private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
private static ResourceBundle lStrings =
ResourceBundle.getBundle(LSTRING_FILE);
/**
* Does nothing, because this is an abstract class.
*/
//抽象类的构造函数
protected ServletOutputStream() { }
/**
* Writes a <code>String</code> to the client,
* without a carriage return-line feed (CRLF)
* character at the end.
* @param s the <code>String</code> to send to the client
* @exception IOException if an input or output exception occurred
*/
//向客户端写string
public void print(String s) throws IOException {
if (s==null) s="null";
int len = s.length();
for (int i = 0; i < len; i++) {
char c = s.charAt (i);
// XXX NOTE: This is clearly incorrect for many strings,
// but is the only consistent approach within the current
// servlet framework. It must suffice until servlet output
// streams properly encode their output.
//
if ((c & 0xff00) != 0) { // high order byte must be zero
String errMsg = lStrings.getString("err.not_iso8859_1");
Object[] errArgs = new Object[1];
errArgs[0] = new Character(c);
errMsg = MessageFormat.format(errMsg, errArgs);
throw new CharConversionException(errMsg);
}
write (c);
}
}
/**
* Writes a <code>boolean</code> value to the client,
* with no carriage return-line feed (CRLF)
* character at the end.
* @param b the <code>boolean</code> value
* to send to the client
* @exception IOException if an input or output exception occurred
*/
//向客户端写boolean
public void print(boolean b) throws IOException {
String msg;
if (b) {
msg = lStrings.getString("value.true");
} else {
msg = lStrings.getString("value.false");
}
print(msg);
}
/**
* Writes a character to the client,
* with no carriage return-line feed (CRLF)
* at the end.
* @param c the character to send to the client
* @exception IOException if an input or output exception occurred
*/
//向客户端写字符
public void print(char c) throws IOException {
print(String.valueOf(c));
}
/**
* Writes an int to the client,
* with no carriage return-line feed (CRLF)
* at the end.
* @param i the int to send to the client
* @exception IOException if an input or output exception occurred
*/
//写int
public void print(int i) throws IOException {
print(String.valueOf(i));
}
/**
* Writes a <code>long</code> value to the client,
* with no carriage return-line feed (CRLF) at the end.
* @param l the <code>long</code> value
* to send to the client
* @exception IOException if an input or output exception
* occurred
*/
//写long
public void print(long l) throws IOException {
print(String.valueOf(l));
}
/**
* Writes a <code>float</code> value to the client,
* with no carriage return-line feed (CRLF) at the end.
* @param f the <code>float</code> value
* to send to the client
* @exception IOException if an input or output exception occurred
*/
//写float
public void print(float f) throws IOException {
print(String.valueOf(f));
}
/**
* Writes a <code>double</code> value to the client,
* with no carriage return-line feed (CRLF) at the end.
* @param d the <code>double</code> value
* to send to the client
* @exception IOException if an input or output exception occurred
*/
//写double
public void print(double d) throws IOException {
print(String.valueOf(d));
}
/**
* Writes a carriage return-line feed (CRLF)
* to the client.
* @exception IOException if an input or output exception occurred
*/
//换行
public void println() throws IOException {
print("\r\n");
}
/**
* Writes a <code>String</code> to the client,
* followed by a carriage return-line feed (CRLF).
* @param s the <code>String</code> to write to the client
* @exception IOException if an input or output exception occurred
*/
//写string并回车
public void println(String s) throws IOException {
print(s);
println();
}
/**
* Writes a <code>boolean</code> value to the client,
* followed by a
* carriage return-line feed (CRLF).
* @param b the <code>boolean</code> value
* to write to the client
* @exception IOException if an input or output exception occurred
*/
//boolean 回车
public void println(boolean b) throws IOException {
print(b);
println();
}
/**
* Writes a character to the client, followed by a carriage
* return-line feed (CRLF).
* @param c the character to write to the client
* @exception IOException if an input or output exception occurred
*/
//字符 回车
public void println(char c) throws IOException {
print(c);
println();
}
/**
* Writes an int to the client, followed by a
* carriage return-line feed (CRLF) character.
* @param i the int to write to the client
* @exception IOException if an input or output exception occurred
*/
//int 回车
public void println(int i) throws IOException {
print(i);
println();
}
/**
* Writes a <code>long</code> value to the client, followed by a
* carriage return-line feed (CRLF).
* @param l the <code>long</code> value to write to the client
* @exception IOException if an input or output exception occurred
*/
//long 回车
public void println(long l) throws IOException {
print(l);
println();
}
/**
* Writes a <code>float</code> value to the client,
* followed by a carriage return-line feed (CRLF).
* @param f the <code>float</code> value to write to the client
* @exception IOException if an input or output exception occurred
*/
//float 回车
public void println(float f) throws IOException {
print(f);
println();
}
/**
* Writes a <code>double</code> value to the client,
* followed by a carriage return-line feed (CRLF).
* @param d the <code>double</code> value to write to the client
* @exception IOException if an input or output exception occurred
*/
//double 回车
public void println(double d) throws IOException {
print(d);
println();
}
}
Java-ServletOutputStream的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
扩展阅读:https://blog.csdn.net/kimylrong/article/details/50353161
- Java 条形码 二维码 的生成与解析
Barcode简介 Barcode是由一组按一定编码规则排列的条,空符号,用以表示一定的字符,数字及符号组成的,一种机器可读的数据表示方式. Barcode的形式多种多样,按照它们的外观分类: Lin ...
- Java Servlet规范
截自网址:http://blog.csdn.net/u010391029/article/details/46521051 JavaServlet Specification Version 2.3 ...
- solve the problem of 'java web project cannot display verification code'
my java code of the function: package com.util; import java.awt.Color; import java.awt.Font; import ...
- java web学习总结(十八) -------------------过滤器的高级使用
在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...
- java web学习总结(八) -------------------HttpServletResponse对象(二)
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,
- java系统高并发解决方案-转
转载博客地址:http://blog.csdn.net/zxl333/article/details/8685157 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图 ...
- JAVA文件下载功能问题解决日志
今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...
- Java基础知识:代理
一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对 ...
随机推荐
- Hive的HQL语句及数据倾斜解决方案
[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51675005 作者: 朱培 ID ...
- 无需密码通过scp命令+key的方式实现文件传输
如果觉得scp每次都要输入密码很麻烦, 那么这是解决方案.假设你平时在windows上开发,用户名是xiang, 你有一台Ubuntu服务器wdksw.com, 用户名是root.现在你准备上传一些文 ...
- Centos6.5 mysql安装
cenos中安装软件使用yum进行安装,小米加步枪不如ak47. 第1步.yum安装mysql yum -y install mysql-server 第2步.设置开机启动 chkconfig ...
- 将String转换为其表示的路径画到屏幕上
关于这个问题,我已经在另一篇blog中有所提及: CoreText精彩文字轮廓绘制动画的一点改进 不过原有的转换代码使用Obj-C写的,在这里我们尝试将其转换为Swift语言,然后利用它实现一个测试小 ...
- Java命名和目录接口——JNDI
JNDI即Java命名和目录接口(JavaNaming and Directory Interface),它属于J2EE规范范畴,是J2EE的核心技术之一,提供了一组接口.类和关于命名空间的概念.JD ...
- maven跳过单元测试的两个参数区别
maven在打包过程中需要执行单元测试.但有些时候单元测试已经通过只是想打包时,想跳过测试.maven提供了两个参数跳过测试:maven.test.skip=true 和skipTests. 例子 m ...
- memcached实战系列(六)理解Memcached的数据存储方式
Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考 ...
- Python模块探秘之smtplib,实现纯文本邮件的发送
今天学到了如何使用Python的smtplib库发送邮件,中间也是遇到了各种各样的错误和困难,还好都一一的解决了.下面来谈一谈我的这段经历. 配置你的邮箱 为什么要配置邮箱呢?具体要配置什么呢? 因为 ...
- EBS 客户表结构
客户表/联系人/PARTY关联 HZ_PARTIES 客户账户表 HZ_CUST_ACCOUNTS SELECT hp.party_number --客户注册标识 , hp.party_name ...
- J2EE进阶(十三)Spring MVC常用的那些注解
Spring MVC常用的那些注解 前言 Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam,@ModelAttribute等等这样 ...