文档详情

chap3 验证码和文件上传下载.pptx

发布:2017-05-25约3.25千字共18页下载文档
文本预览下载声明
第13章 验证码和文件上传、下载 1 本章教学内容 使用JSP验证码 验证码开发 认识文件上传 实现文件上传 文件下载 2 13.1 使用JSP验证码 我们可以利用验证码来防止恶意用户反复尝试用户名密码匹配 保护正常用户的账户安全 保护数据库的性能 验证码形态 数字、文字、字符组成的图片 干扰信息(但不会干扰肉眼识别的能力) 字符扭曲 3 13.1使用JSP验证码 验证码必须满足以下几个性质: 不同的请求,得到的验证码应该是随机的,或者是无法预知的,必须由服务器端产生 验证码必须通过人眼识别,而通过图像编程的方法编写的机器人程序在客户端运行,几乎无法识别。这就是验证码都比较歪斜或者模糊的原因,否则就很容易通过图像处理算法来识别 除了人眼观察之外,客户端无法通过其他手段获取验证码信息。这就是验证码为什么用图片,而不是直接用一个数字文本在页面上显示的原因,因为客户端可能通过访问网页源代码的方式获取验证码的内容 4 13.1使用JSP验证码 验证码的工作流程如下: 服务器端随机生成验证码字符串,保存在session 中,并写入图片,将图片连同表单发给客户端 客户端输入验证码,并提交,服务器端获取客户提交的验证码,和前面产生的的随机验证码字符串相比较;如果相同,则继续进行表单所描述的操作(如登录、注册等);如果不同,直接将错误信息返回给客户端。避免程序的继续运行以及访问数据库 5 13.2 验证码开发——实现验证码 在 JSP 上开发验证码步骤如下: 1、实例化 java.awt.image.BufferedImage 类。它的作用是访问图像数据缓冲区,或者说对所要绘的图片对象进行访问 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); width、height:图片尺寸大小 BufferedImage.TYPE_INT_RGB:用RGB颜色显示 6 13.2 验证码开发——实现验证码 2、从 BufferedImange 中获取 Graphics 类对象(画笔),并设定相关属性。Graphics 提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。 Graphics g = image.getGraphics(); g.setColor(Color color);//设置颜色 g.fillRect(int,int,int,int);//设置生成的图片为长方形 7 13.2 验证码开发——实现验证码 8 3、产生 4 位数随机数,并将其存入 session 中。 //产生随机数 Random rnd = new Random(); int randNum = rnd.nextInt(8999) + 1000; //产生一个4位随机数在1000到9999之间。 String randStr = String.valueOf(randNum); session.setAttribute(randStr, randStr); 13.2 验证码开发——实现验证码 9 4、用画笔画出随机数和干扰点。 g.setColor(Color.black); g.setFont(new Font(, Font.PLAIN, 20)); g.drawString(randStr, 10, 17); //随机产生 100 个干扰点,使图象中的验证码不易被其他程序探测到 for (int i = 0; i 100; i++){ int x = rnd.nextInt(width); int y = rnd.nextInt(height); g.drawOval(x, y, 1, 1); } 13.2 验证码开发——实现验证码 10 5、输出图像 // 输出图象到页面 ImageIO.write(Image image, JPEG, response.getOutputStream()); 6、清除缓冲区 out.clear(); out = pageContext.pushBody(); 13.2 验证码开发——验证码刷新 11 当用户看不清楚的时候可以通过刷新实现重新生成验证码。验证码的刷新技术有很多种,一般使用 JavaScript 刷新验证码,最方便的方法是,点击验证码图片,获得新的验证码 用验证码验证 13.3 认识文件上传 12 在 JavaWeb 应用开发中,文件的上传是必不可少的功能,例如上传简历、上传图片、又或者是上传源代码等 文件上传的本质,其实就是把客户端本地计算机的文件保存到网站服务器中
显示全部
相似文档