1 / 23

JSP 相关技术

JSP 相关技术. 验证码和文件上传下载. 本课教学内容. 使用JSP验证码 验证码开发 认识文件上传 实现文件上传 文件下载. 使用 JSP 验证码. 验证码有什么作用呢?假想该系统没有验证码,直接通过用户名和密码登录,那么就有 可能有恶意的用户不停输入用户名和密码进行登录试探,或者他使用一个输入程序(俗称机 器人程序)不停登录,有理由相信总有一天他是能够破解密码的,就可以使用别人的账号了。 或者即使他没有破解,只是不停的在登录,服务器每次都会验证数据库,也会严重的降低服 务器的效率,导致其他人不能使用。但是有了验证码之后,就可以避免这种现象.

Download Presentation

JSP 相关技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSP相关技术 验证码和文件上传下载

  2. 本课教学内容 • 使用JSP验证码 • 验证码开发 • 认识文件上传 • 实现文件上传 • 文件下载

  3. 使用 JSP 验证码 • 验证码有什么作用呢?假想该系统没有验证码,直接通过用户名和密码登录,那么就有 可能有恶意的用户不停输入用户名和密码进行登录试探,或者他使用一个输入程序(俗称机 器人程序)不停登录,有理由相信总有一天他是能够破解密码的,就可以使用别人的账号了。 或者即使他没有破解,只是不停的在登录,服务器每次都会验证数据库,也会严重的降低服 务器的效率,导致其他人不能使用。但是有了验证码之后,就可以避免这种现象

  4. 使用 JSP 验证码 • 每登录一次服务器,客户都需要提供一次验证码,而验证码每次都是不同的。所以很难使用机器人程序反复登录,因为机器人程序无法认识验证码。这就是验证码强大的功能所在

  5. 使用 JSP 验证码 • 所谓验证码,就是由服务器产生的一串随机数字或符号,形成一幅图片,图片应该传给客户端,为了防止客户端用一些程序来进行自动识别,图片中通常要加上一些干扰象素,由用户肉眼识别其中的验证码信息。客户输入表单提交时,验证码也提交给网站服务器,只有验证成功,才能执行实际的数据库操作

  6. 使用 JSP 验证码 • 验证码必须满足以下几个性质: • 不同的请求,得到的验证码应该是随机的,或者是无法预知的,必须由服务器端产生 • 验证码必须通过人眼识别,而通过图像编程的方法编写的机器人程序在客户端运行,几乎无法识别。这就是验证码都比较歪斜或者模糊的原因,否则就很容易通过图像处理算法来识别

  7. 使用 JSP 验证码 • 验证码必须满足以下几个性质: • 除了人眼观察之外,客户端无法通过其他手段获取验证码信息。这就是验证码为什么用图片,而不是直接用一个数字文本在页面上显示的原因,因为客户端可能通过访问网页源代码的方式获取验证码的内容

  8. 使用 JSP 验证码 • 验证码的工作流程如下: • 服务器端随机生成验证码字符串,保存在session 中,并写入图片,将图片连同表单发给客户端 • 客户端输入验证码,并提交,服务器端获取客户提交的验证码,和前面产生的的随机验证码字符串相比较;如果相同,则继续进行表单所描述的操作(如登录、注册等);如果不同,直接将错误信息返回给客户端。避免程序的继续运行以及访问数据库

  9. 验证码开发 • 在 JSP 上开发验证码步骤如下: • 实例化 java.awt.image.BufferedImage 类。它的作用是访问图像数据缓冲区,或者说对所要绘的图片对象进行访问 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

  10. 验证码开发 • 在 JSP 上开发验证码步骤如下: • 从 BufferedImange 中获取 Graphics 类对象(画笔),并设定相关属性。 Graphics g = image.getGraphics(); Graphics 提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。 g.setColor(Color color);//设置颜色 g.fillRect(int,int,int,int);//设置生成的图片为长方形

  11. 验证码开发 • 在 JSP 上开发验证码步骤如下: • 产生 4 位数随机数,并将其存入 session 中。 //产生随机数 Random rnd = new Random(); int randNum = rnd.nextInt(8999) + 1000; String randStr = String.valueOf(randNum); session.setAttribute("randStr", randStr);

  12. 验证码开发 • 在 JSP 上开发验证码步骤如下: • 用画笔画出随机数和干扰点。 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. 验证码开发 • 在 JSP 上开发验证码步骤如下: • 输出图像 // 输出图象到页面 ImageIO.write(Image image, "JPEG", response.getOutputStream());

  14. 验证码开发 • 在 JSP 上开发验证码步骤如下: • 清除缓冲区 out.clear(); out = pageContext.pushBody();

  15. 实现验证码刷新 • 当用户看不清楚的时候可以通过刷新实现重新生成验证码。验证码的刷新技术有很多种,一般使用 JavaScript 刷新验证码,最方便的方法是,点击验证码图片,获得新的验证码

  16. 用验证码进行验证 • 具体代码示例见课本

  17. 认识文件上传 • 在 JavaWeb 应用开发中,文件的上传是必不可少的功能,例如上传简历、上传图片、又或者是上传源代码等 • 文件上传的本质,其实就是把客户端本地计算机的文件保存到网站服务器中,当然,此时不能简单用request.getParameter()方法来获得文件的数据

  18. 实现文件上传 • 文件上传包 • jspsmart 文件上传包功能强大却非常易用,只需几行代码就可以实现文件的上传功能。另外,其还可以对上传过程进行监控,对文件的大小以及类型作出限制。首先,需要在网上下载 jspsmart 文件上传包,下载后解压,里面会是一个 jar 包,使用 的时候将其拷贝到项目的 lib 文件夹下即可。本例中提供的是 jsmartcom_zh_CN.jar

  19. 实现文件上传 • jsmartcom_zh_CN.jar 中提供了很多 API,其中比较重要的有以下几个: • com.jspsmart.upload.SmartUpload com.jspsmart.upload.SmartUpload 负责进行文件上传,其具有以下重要 API: • SmartUpload.initialize(ServletConfig,HttpServletRequest, HttpServletResponse):在进行上传之前,需要进行初始化,传入当前 Servlet 的 ServletConfigHttpServletRequest 和HttpServletResponse 参数 • SmartUpload.upload():实现上传

  20. 实现文件上传 • jsmartcom_zh_CN.jar 中提供了很多 API,其中比较重要的有以下几个: • com.jspsmart.upload.SmartUpload com.jspsmart.upload.SmartUpload 负责进行文件上传,其具有以下重要 API: • SmartUpload.getFiles():获取上传的所有文件对象 • SmartUpload.getFiles().getFile(i) : 获 取 上 传 的 第 i com.jspsmart.upload.File

  21. 实现文件上传 • jsmartcom_zh_CN.jar 中提供了很多 API,其中比较重要的有以下几个: • com.jspsmart.upload.File com.jspsmart.upload.SmartUpload 负责进行文件上传,其具有以下重要 API: • File.getFileName():得到文件名 • File.getFilePathName():得到文件路径全名 • File.saveAs(String,int):将文件进行保存,参数 1 是保存的路径,参数 2 是保存的方式

  22. 文件下载 • 具体代码示例见课本

  23. 本章结束 • 本章总结 • 使用JSP验证码 • 验证码开发 • 认识文件上传 • 实现文件上传 • 文件下载 • 上机习题

More Related