java学习笔记—校验码的实现(15)
校验码的出现主要的任务是解决表单的重复提交问题。
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// 0. 通知浏览器不能缓存图片数据
response.setHeader("expires", "-1");
response.setHeader("cache-control", "no-cache");
response.setHeader("pragma", "no-cache");
// 1. 在内存中创建一个图片对象
BufferedImage img = new BufferedImage(,,BufferedImage.TYPE_INT_RGB);
ServletOutputStream out = response.getOutputStream();
// 2. 获取图片
Graphics pic = img.getGraphics();
// 3. 设置背景是白色
pic.setColor(Color.WHITE);
pic.fillRect(, , , );
// 4. 设置图片
pic.setColor(Color.RED);
pic.setFont(new Font(null,Font.BOLD,));
// 5. 添加数据
pic.drawString(makeString(), , );
// 6. 输出图片到浏览器
ImageIO.write(img, "jpeg", out);
}
字符流做响应体的输出
public class Demo3 extends HttpServlet {
String str = null;
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// 设置字符流的编码方式
response.setCharacterEncoding("utf-8");
// 通知浏览以指定的编码方式进行解码
response.setContentType("text/html;charset=utf-8");
// 获取响应对象的字符流对象
PrintWriter out = response.getWriter();
// 定义输出数据
String data = "hello<br/>";
// 输出字符串数据
out.write(data);
// 输出页面数据
data = "<h2>this is a h2</h2>";
out.write(data);
// 输出中文数据
data = "中国";
out.write(data);
out.write("<br/>");
// 输出数字
out.write(); // A
out.write("<br/>");
// 调用打印方法
out.println(); //
out.println(true); // true
out.println(34.567); // 34.567 out.write(str); // 空指针异常
out.println(str); // 输出null
}
}
write()和prinln()的区别?
输出数字不同: write()输出数字转换为字符,println原样输出。
输出null不同: write()输出引用类型的时候调用的toString转换为String数据,因此如果对象为null那么直接抛出空指针异常。Println直接输出null。
java学习笔记—校验码的实现(15)的更多相关文章
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145316许心远《Java学习笔记》第三周总结
20145316许心远<Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: 类定义时使用class关键字 如果要将x绑定到新建的对象上,可以使用"="制定 ...
- 20145230《java学习笔记》第九周学习总结
20145230 <Java程序设计>第9周学习总结 教材学习内容 JDBC JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作, ...
- Java学习笔记之---API的应用
Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
- Java学习笔记——动态代理
所谓动态,也就是说这个东西是可变的,或者说不是一生下来就有的.提到动态就不得不说静态,静态代理,个人觉得是指一个代理在程序中是事先写好的,不能变的,就像上一篇"Java学习笔记——RMI&q ...
随机推荐
- 下拉菜单的实现classList.add() classList.remove() class属性的添加和删除
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Mysql 索引优化 - 1
单表 范围查询 后面的索引会失效 双表 左右连接建立索引互相使用 三表 用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引 索引失效(常见原因) 全职匹 ...
- windows到ubuntu
按照xmarks同步浏览器书签. mvn, copy setting.xml 最好不要用apt-get install maven, 占用/的磁盘空间 mvn -U package -P"d ...
- 归纳整理Linux下C语言常用的库函数----内存及字符串控制及操作
在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...
- clr相关名词
程序集:一个或多个类型定义文件和资源文件的集合 Native Code(本机代码): 已被编译为特定于处理器的机器码的代码. 本地代码(native code)是计算机编程(代码),编译用来运行一个特 ...
- python常用option
[python常用option] 1. -c cmd : program passed in as string (terminates option list) 解析字符串命令,不读cmd之后的op ...
- 【poj3254】Corn Fields 状态压缩dp
AC通道:http://vjudge.net/problem/POJ-3254 [题目大意] 农夫约翰购买了一处肥沃的矩形牧场,分成M*N(1<=M<=12; 1<=N<=12 ...
- Devexpress VCL Build v2013 vol 13.2.2 发布
devexpress 2013 的第二个大版本出来了,一如既往, 基本上还是一个大补丁包.各位看官,自己看. What's New in 13.2.2 (VCL Product Line) New ...
- net 程序员面试宝典
第1部分 求职过程 ------------------------------------------------------------------------------------------ ...
- 关于Safari浏览器使用的几点总结
声明:下载的是Safari英文版本,在Windows操作系统下使用. 一.Safari浏览器中的开发者调试工具隐藏得比较深,找了好久才找到的,方法:按一下键盘上的alt键,浏览器上方就会弹出一个开发者 ...