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 ...
随机推荐
- oracle 截取字符(substr),检索字符位置(instr)
常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 start_posit ...
- open()打开文件失败对应的各种错误码
open()打开文件失败错误码: 获取错误信息实例: HANDLE hFile = ; hFile = open(“c:\test.txt”, O_RDWR, S_IRWXU|S_IRWXG|S_IR ...
- CentOS装机必备-基本设置以及缺失文件
主要是虚拟机中安装CentOS每次总会做一些设置,记录下来方便以后. 纯粹基本设置,比如本地SecureCRT可以连接虚拟机中的CentOS. 复杂的非基本设置见:Linux 命令集锦 设置网络 自 ...
- 数据库框架的log4j日志配置
Hibernate log4j.logger.org.hibernate.tool.hbm2ddl=debuglog4j.logger.org.hibernate.engine.transaction ...
- 74. Search a 2D Matrix (Graph; Divide-and-Conquer)
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- WebLogic(12C)——几个基本概念
转http://blog.csdn.net/hanxuemin12345/article/details/46287597 目录(?)[-] 域Domain 服务器Server 机器Machine W ...
- jrebel+idea 进行热部署配置
1.安装和激活jrebel这里不在叙说 2.部署项目工程的两种方式 第一:打开项目配置project structure 配置Artificials 第二:tomcat加载项目 然后填写应用名 ...
- 探究算子find_shape_model中参数MaxOverlap的准确意思
基于形状的模板查找算子: find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxO ...
- [Training Video - 4] [Selenium IDE]
Selenium IDE Training List
- UX最佳演练:交互驱动连接
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具 我们开展了最佳用户体验演练的系列活动,其涵盖了模式和格式塔理论是如何帮助我们设计便于用户理解的界面.如 ...