制作网页时的验证码部分的代码
验证码总结:
流程图:
生成图片的实现类:
开源组件实现验证码:
获取随机数值,结果相加
将计算公式写到验证码图片中
把相加结果放到session中
验证码长度 <init-param> <param-name>kaptcha.textproducer.char.length</param-name> <param-value>5</param-value> </init-param>
kaptcha组件详细配置——验证码配置
文本实现类:kaptcha.textproducer.impl
值为:com.google.code.kaptcha.text.impl.DefaultTextCreator
验证码值配置:kaptcha.textproducer.char.string 值:abcde2345678gfynmnpwx(随意你自己写)
验证码的长度:kaptcha.textproducer.char.length 值:
字体:kaptcha.textproducer.font.names 值:Arial,Courier
字体颜色:kaptcha.textproducer.font.color 值: r,g,b 或者 white,black,blue
文字间隔:kaptcha.textproducer.char.space 值:
干扰实现类:kaptcha.noise.impl
值:com.google.code.kaptcha.impl.DefaultNoise/NoNoise
干扰颜色:kaptcha.noise.color 值: r,g,b 或者 white,black,blue
图片样式:kaptcha.obscurificator.impl
值:水纹com.google.code.kaptcha.impl.WaterRipple;鱼眼com.google.code.kaptcha.impl.FishEyeGimpy;阴影com.google.code.kaptcha.impl.ShadowGimpy
背景实现类:kaptcha.background.impl
值:com.google.code.kaptcha.impl.DefaultBackground
背景渐变色(开始/结束):kaptcha.background.clear.from/to 值:r,g,b 或者
white,black,blue
文字渲染器:kaptcha.word.impl
值:com.google.code.kaptcha.text.impl.DefaultWordRenderer
session中存放验证码的key键:kaptcha.session.key 值:KAPTCHA_SESSION_KEY
验证码的实现原理图,再次的复习一下,其实关键的地方在于两个:<br> 1:如何生成验证码<br> 2:如何验证用户输入的验证码和我们要求用户输入的是否一致 生成验证码,特别是比较个性、比较好玩的验证码的生成过程即费事意义又不大(相对于业务逻辑的处理),并且还有开源的组件能提供支持,当然,就是用开源组件了。
本节内容比较简单,就是将生的验证码放在了Session中,然后通过一个表单请求将用户输入的验证码和放置在回话中的验证码比较一下是否一样。 web.xml <servlet> <servlet-name>ImagerServlet</servlet-name> <servlet-class>com.imooc.ImageServlet</servletclass> </servlet> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.imooc.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>InageServlet</servlet-name> <url-patten>/servlet/ImageServlet<url-pattern> </servlet-mapping> <servlet-name>LogingServlet</servlet-name> <url-pattern>/servlet/LoginServlet</url-pattern> </servlet-mapping>
验证码实现的过程:<br> 1:打开开发工具,创建验证码的实现项目<br> 2:创建验证码的页面——重点是验证码图片的路径是一个动态请求 3:创建生成验证码图片信息的Servlet类——重点还是这个验证码图片的生成的实现过程 4:配置web.xml文件 5:实现点击“看不清”的方法——这里需要注意的是,IE浏览器对于同一个请求路径,默认是不去请求新的资源的,他会到缓存中去那对应的内容,解决的方法就是给请求的路径加一个随机数,让IE适中认为这是一个新的请求。 6:验证、调试、完善、应用到实际的工作之中。
ImageServlet的实现过程:
①创建图片缓存区BufferedImage对象;
②创建制图工具Graphics对象,对其设置颜色和边框
③使用Random()随机获取字符对象和颜色来绘制验证码图片;并将验证码保存到StringBuffer对象中,并保存在session中
④输出图片,用ImageIO.write(bi,"JPG",response.getOutputStrean());//其中bi是BufferedImage对象。
使用Servlet实现验证码制作 网页显示验证码: <input type="text" id="verifyCode" name="verifyCode" size="6" /> <img alt="验证码" src="<%=request.getContextPath()%>/servlet/ImageServlet" /> 运用Servlet随机生成图片,用到的类: 1. BufferedImage图像数据缓冲区 2. Graphics绘制图片 3. Color获取颜色 4. Random生成随机数 5. ImageIO输出图片 ImageServlet类 1. 定义BufferedImage对象 2. 获取Graphics对象 3. Random随机生成验证码信息 4. 使用Graphics绘制图片 5. 验证码信息放入StringBuffer缓冲区,再传入Session中 6. 使用ImageIO输出图片 CheckServlet类//校验验证码是否正确 1. 获取页面提交的验证码 2. 获取Session中的验证码 3. 信息校验 4. 返回结果
验证码实现流程
校验验证码是否正确
生成验证码图片
生成图片的实现类
验证码定义
没有验证码带来的问题
jcaptcha组件配置代码
.....续
生成验证码图片
servlet验证码生成图片
验证码总结
算式验证码的实现步骤:
开源组件实现验证码
nextInt(int n)
给定一个参数n,nextInt(n)将返回一个大于等于0小于n的随机数,即:0 <= nextInt(n) < n。
验证码图片如何获取
使用servlet实现验证码流程