JSP
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

JSP 相关技术 PowerPoint PPT Presentation


  • 109 Views
  • Uploaded on
  • Presentation posted in: General

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Jsp

JSP相关技术

验证码和文件上传下载


Jsp

本课教学内容

  • 使用JSP验证码

  • 验证码开发

  • 认识文件上传

  • 实现文件上传

  • 文件下载


Jsp

使用 JSP 验证码

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


Jsp

使用 JSP 验证码

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


Jsp

使用 JSP 验证码

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


Jsp

使用 JSP 验证码

  • 验证码必须满足以下几个性质:

    • 不同的请求,得到的验证码应该是随机的,或者是无法预知的,必须由服务器端产生

    • 验证码必须通过人眼识别,而通过图像编程的方法编写的机器人程序在客户端运行,几乎无法识别。这就是验证码都比较歪斜或者模糊的原因,否则就很容易通过图像处理算法来识别


Jsp

使用 JSP 验证码

  • 验证码必须满足以下几个性质:

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


Jsp

使用 JSP 验证码

  • 验证码的工作流程如下:

    • 服务器端随机生成验证码字符串,保存在session 中,并写入图片,将图片连同表单发给客户端

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


Jsp

验证码开发

  • 在 JSP 上开发验证码步骤如下:

    • 实例化 java.awt.image.BufferedImage 类。它的作用是访问图像数据缓冲区,或者说对所要绘的图片对象进行访问

      BufferedImage image = new BufferedImage(width, height,

      BufferedImage.TYPE_INT_RGB);


Jsp

验证码开发

  • 在 JSP 上开发验证码步骤如下:

    • 从 BufferedImange 中获取 Graphics 类对象(画笔),并设定相关属性。

      Graphics g = image.getGraphics();

      Graphics 提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。

      g.setColor(Color color);//设置颜色

      g.fillRect(int,int,int,int);//设置生成的图片为长方形


Jsp

验证码开发

  • 在 JSP 上开发验证码步骤如下:

    • 产生 4 位数随机数,并将其存入 session 中。

      //产生随机数

      Random rnd = new Random();

      int randNum = rnd.nextInt(8999) + 1000;

      String randStr = String.valueOf(randNum);

      session.setAttribute("randStr", randStr);


Jsp

验证码开发

  • 在 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);

      }


Jsp

验证码开发

  • 在 JSP 上开发验证码步骤如下:

    • 输出图像

      // 输出图象到页面

      ImageIO.write(Image image, "JPEG", response.getOutputStream());


Jsp

验证码开发

  • 在 JSP 上开发验证码步骤如下:

    • 清除缓冲区

      out.clear();

      out = pageContext.pushBody();


Jsp

实现验证码刷新

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


Jsp

用验证码进行验证

  • 具体代码示例见课本


Jsp

认识文件上传

  • 在 JavaWeb 应用开发中,文件的上传是必不可少的功能,例如上传简历、上传图片、又或者是上传源代码等

  • 文件上传的本质,其实就是把客户端本地计算机的文件保存到网站服务器中,当然,此时不能简单用request.getParameter()方法来获得文件的数据


Jsp

实现文件上传

  • 文件上传包

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


Jsp

实现文件上传

  • jsmartcom_zh_CN.jar 中提供了很多 API,其中比较重要的有以下几个:

    • com.jspsmart.upload.SmartUpload

      com.jspsmart.upload.SmartUpload 负责进行文件上传,其具有以下重要 API:

      • SmartUpload.initialize(ServletConfig,HttpServletRequest, HttpServletResponse):在进行上传之前,需要进行初始化,传入当前 Servlet 的 ServletConfigHttpServletRequest 和HttpServletResponse 参数

      • SmartUpload.upload():实现上传


Jsp

实现文件上传

  • 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


Jsp

实现文件上传

  • jsmartcom_zh_CN.jar 中提供了很多 API,其中比较重要的有以下几个:

    • com.jspsmart.upload.File

      com.jspsmart.upload.SmartUpload 负责进行文件上传,其具有以下重要 API:

      • File.getFileName():得到文件名

      • File.getFilePathName():得到文件路径全名

      • File.saveAs(String,int):将文件进行保存,参数 1 是保存的路径,参数 2 是保存的方式


Jsp

文件下载

  • 具体代码示例见课本


Jsp

本章结束

  • 本章总结

    • 使用JSP验证码

    • 验证码开发

    • 认识文件上传

    • 实现文件上传

    • 文件下载

  • 上机习题


  • Login