Kaptcha是Google提供的一个图形验证码插件,可以从官网https://code.google.com/p/kaptcha/了解更多的详情。

它的源代码是公开的,在上面的官网提供的Download项,可以下载一个zip包,里面包含了jar包和源代码。

从源代码中,可以获得Kaptcha这个项目的结构(整体的Kaptcha是由Producer实现的):

  1. 生成一个text,使用TextProducer
  2. 基于text,把包裹它的图片生成出来:
    • Render the text (word),使用WordRenderer
    • Background (add background),使用BackgroundProducer
    • Gimpy (distort image),使用GimpyEngine
      • Noise,使用NoiseProducer
    • Draw box,单独方法实现

可以看到,整体的业务逻辑思路都是用Interface来连接的,这给了后面的实现极大的灵活性。
Kaptcha的结构

如上图所示,为了让Kaptcha可以使用配置文件被灵活配置,专门提供了一个Configurable接口。如果你需要自己实现一个可配置的类,仅需implement Configurable就可以了。

Configurable中,提供了一个代理Config来处理/返回具体的事务/配置参数。而在Config中,又提供了一个ConfigHelper专门做配置文件的解析。

这样的代理模式,让整体结构清晰而灵活。

而作为整个项目的核心入口,当然是KaptchaServlet,里面做的工作就是简单地实现Servlet的doGet()方法:根据Properties创建出一个Config。有了它,便可以创建出相应的KaptchaProducer

相关文章:

  • 2021-05-13
  • 2021-10-19
  • 2022-12-23
  • 2021-11-10
  • 2022-12-23
  • 2021-12-26
  • 2021-04-23
猜你喜欢
  • 2021-04-25
  • 2021-09-23
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-12-01
相关资源
相似解决方案