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 ...
随机推荐
- NSString 与C++ string字符串的互转(转)
. string 转换为 NSString std::string str("hello"); NSString *str=[NSString stringWithString:s ...
- MyEclipse10.0 采用插件方式安装 SVN(转)
原文:http://blog.sina.com.cn/s/blog_a5f093b401015uzl.html 一.到官方上下载svn1.8.3,下载后的文件名叫site-1.8.3.zip 地址:h ...
- 理解ServletRequest和ServletResponse
博客地址:http://blog.51cto.com/lavasoft/275586
- 【bzoj1597】[Usaco2008 Mar]土地购买
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3739 Solved: 1376[Submit] ...
- POJ2533 最长递增子序列
描述: 7 1 7 3 5 9 4 8 输出4 最长递增子序列为1 3 5 9,不必连续. 解法: 三种思路: 转化为最长公共子序列(n^2),动态规划(n^2),不知叫什么解法(nlogn). 解法 ...
- 根据车辆品牌获取品牌所属公司,车标logo,创建年份等基本信息
接口:http://api.besttool.cn/?c=Car&a=brand 请求方式:post 参数: appid 请联系博主QQ987332767获取,注明车标接口,测试appid: ...
- centos7 搭建svn服务
linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...
- R学习笔记-安装R和RStudio,注意RStudio的版本需要与操作系统版本匹配
1.安装步骤:先安装R,再安装RStudio RStudio是R的集成开发工具,本身不带R环境. 2.从当前R的官网和RStudio下载的R和RStudio的版本分别为: A .For Windows ...
- Golang之排序算法
冒泡排序 package main //冒泡排序 import "fmt" func bsort(a []int) { ; i < len(a); i++ { ; j < ...
- FW:考查嵌入式C开发人员的最好的16道题(转)
考查一个初级嵌入式系统开发人员的C基本功,附有答案题目由资深嵌入式系统专家拟定, 目的是考查入门级的嵌入式软件开发人员 Gavin Shaw提供详细解答. 编者按:非常基本关于C语言的问题,一个信息类 ...