前言

本文首发于公众号【我的小碗汤】本公众号免费提供csdn下载服务,海量IT学习资源,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括但不限于java、go、python、springcloud、elk、嵌入式 、大数据、面试资料、前端 等资源。扫码关注:

正文

今天来学习下图形验证码的生成,首先依赖开源组件:

<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>

在web.xml中配置名为Kaptcha的servlet:

<servlet>
<!-- 生成图片的Servlet -->
<servlet-name>Kaptcha</servlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> <!-- 是否有边框 -->
<init-param>
<param-name>kaptcha.border</param-name>
<param-value>no</param-value>
</init-param>
<!-- 字体颜色 -->
<init-param>
<param-name>kaptcha.textproducer.font.color</param-name>
<param-value>red</param-value>
</init-param>
<!-- 图片宽度 -->
<init-param>
<param-name>kaptcha.image.width</param-name>
<param-value>135</param-value>
</init-param>
<!-- 使用哪些字符生成验证码 -->
<init-param>
<param-name>kaptcha.textproducer.char.string</param-name>
<param-value>ACDEFHKPRSTWX345679</param-value>
</init-param>
<!-- 图片高度 -->
<init-param>
<param-name>kaptcha.image.height</param-name>
<param-value>50</param-value>
</init-param>
<!-- 字体大小 -->
<init-param>
<param-name>kaptcha.textproducer.font.size</param-name>
<param-value>43</param-value>
</init-param>
<!-- 干扰线的颜色 -->
<init-param>
<param-name>kaptcha.noise.color</param-name>
<param-value>black</param-value>
</init-param>
<!-- 字符个数 -->
<init-param>
<param-name>kaptcha.textproducer.char.length</param-name>
<param-value>4</param-value>
</init-param>
<!-- 使用哪些字体 -->
<init-param>
<param-name>kaptcha.textproducer.font.names</param-name>
<param-value>Arial</param-value>
</init-param>
</servlet>
<!-- 映射的url -->
<servlet-mapping>
<servlet-name>Kaptcha</servlet-name>
<url-pattern>/Kaptcha</url-pattern>
</servlet-mapping>

html中添加验证码标签,并绑定javascript事件:

<!--验证码-->
<li class="align-top">
<div class="item-content">
<div class="item-inner">
<div class="item-title label">验证码</div>
<input type="text" id="j_captcha" placeholder="验证码">
<div class="item-input">
<img id="captcha_img" alt="点击更换" title="点击更换" src="../Kaptcha"
onclick="changeVerifyCode(this)"/>
</div>
</div>
</div>
</li>
<script type="text/javascript">
function changeVerifyCode(img) {
// alert("asssssssssss");
img.src = "../Kaptcha?" + Math.floor(Math.random() * 100);
};
</script>

效果图:


最后,csdn资源,收集了海量学习资料,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括java、go、python、springcloud、elk、嵌入式 、大数据、面试资料、前端等资源。同时我们组建了一个技术交流群,里面有很多大佬,会不定时分享技术文章,如果你想来一起学习提高,可以关注以下公众号后回复【2】,获取。


我是小碗汤,我们一起学习,扫码关注,精彩内容第一时间推给你

最新文章

  1. java String部分源码解析
  2. Python脚本控制的WebDriver 常用操作 &lt;三&gt; 浏览器最大化
  3. Posix线程编程指南(3) 线程同步
  4. Android中ListView滚动时上下边界的那一抹色彩
  5. HeadFirst设计模式之单例模式
  6. PHP集成支付宝快速实现充值功能
  7. css网页自适应-2
  8. UWP 使用Telerik Chart控件
  9. java加载properties文件的六中基本方式实现
  10. vins-mono:雅可比矩阵的推导
  11. 【SVN】SVN初识
  12. Error:Execution failed for task :app:transformClassesWithInstantRunForDebug解决方案
  13. Python之路 - 网络编程初识
  14. 【Linux】将一个命令的输出发送给另外一个命令
  15. 搭建自己的 github.io 博客
  16. 51nod 1766 树上的最远点对 | LCA ST表 线段树 树的直径
  17. tensorflow serving GPU编译问题
  18. Xcode中模拟器慢
  19. BETA事后总结
  20. 20145210姚思羽 《网络对抗技术》 Web安全基础实践

热门文章

  1. [Angular] New in V6.1
  2. ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
  3. Unity3d PBR海水渲染
  4. UIView的层介绍
  5. IOS怎么实现一个UITableView的下拉刷新
  6. 第14章4节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-装备ViewServer-port转发
  7. codility MinAbsSum
  8. seq2seq里的数学
  9. [Codeforces Round495B] Sonya and Exhibition
  10. Filter,Interceptor和Aspect