第一种:对于SSM搭建的项目环境,使用验证码。
1、先去Maven中央仓库中下载对应的依赖包
链接:https://mvnrepository.com/artifact/com.github.penggle/kaptcha
下载之后,将依赖放入pom.xml文件中
下面的依赖代码看不全,可以看我下面的截图:
2、查看对应的Libraries---->Maven Dependencies---->是否有kaptcha-2.3.2.jar这个包,如果没有,那么说明没有下载下来,或者是没有显示。可以在Eclipse导航栏中—>选择Project—>右键—>clean —>Build the entire workspace
然后你就可以看到这个依赖包了。
3、配置web.xml文件,
下面给出的代码,是写在 项目名称标签下面。
下面的代码部分可能看不见,是编辑器的问题,可以看上面图片,是一样的内容。
<-- y验证码相关属性的配置 -->
Kaptcha
com.google.code.kaptcha.servlet.KaptchaServlet
<-- y启动时就已经加载到内存中去了–>
<–y下面是有关于生成的验证码的详细配置样式 -->
<-- y设置是否有边框 -->
kaptcha.border
yes
<-- y设置边框颜色–>
kaptcha.border.color
105,179,90
<init-param>
<param-name>kaptcha.textproducer.char.length</param-name>
<param-value>4</param-value>
</init-param>
<!--y 字体 -->
<init-param>
<param-name>kaptcha.textproducer.font.names</param-name>
<param-value>Arial</param-value>
</init-param>
<init-param>
<param-name>kaptcha.textproducer.char.string</param-name>
<param-value>ACDEFHKPRSTWXacdefhkprstwx123456789</param-value>
</init-param>
<!-- y字体大小 -->
<init-param>
<param-name>kaptcha.textproducer.font.size</param-name>
<param-value>32</param-value>
</init-param>
<!-- y干扰线的颜色 -->
<init-param>
<param-name>kaptcha.noise.color</param-name>
<param-value>black</param-value>
</init-param>
Kaptcha
/Kaptcha 注意在代码:
/Kaptcha中Kaptcha不是说随便写,而是在后面的jsp页面要用到的。
4、在前端jsp页面的配置:
代码
./ 当前目录。
…/ 父级目录。
/ 根目录。
/项目名/src/main/webapp/login.jsp
/项目名/src/main/webapp/WEB-INF/web.xml
代码:
<input type="text" placeholder="验证码" class="login_txtbx"
name="kaptcha" id=j_captcha />
</dd>
<dd>
<div class="form-cont">
<img id="captcha_img" alt="点击更换" title="点击更换"
onclick="changeVerifyCode(this)" src="../Kaptcha"/><font style="color: white;">字母区分大小写</font>
</div>
5、在Controller层的写法:
6、如果你要判断两个验证码是否相等,kaptcha.equals(code),通过if判断,相等则可以登录成功,否则登录失败。
7、效果:
第二种:没有用SSM框架,使用的是javaWeb servlet+jsp
1:去中央仓库下载kaptcha包
链接:https://mvnrepository.com/artifact/com.github.penggle/kaptcha
2、将包放到lib文件夹下面,注意要build path,包的图标,左下角有一点绿色,代表build path 成功
3、配置web.xml文件
代码:
4、
代码如下:代码展示不出来下面的代码部分可能看不见,是编辑器的问题,可以看上面图片,是一样的内容。

要添加点击事件:为了点击图片进行刷新图片
<script>
window.onload = function() {
document.getElementById("codeImg").onclick = function() {
//0.单击事件的function函数中,有一个this对象,这个this对象是当前正在响应事件的dom对象
this.src = "/Java1904Servlet_01/Kaptcha.jpg?t=" + new Date();
//0.这里在?后面加一个随机值,防止验证码的重复提交---可以选择随机数或者日期,这里使用日期
}
}
</script>
5、图片以及代码:
6、在controller层的写法:
// 0.获取用户传递过来的验证码
String kaptcha = request.getParameter(“kaptcha”);
// 0.获取之前生成的验证码
String code = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
7、如果你要判断两个验证码是否相等,kaptcha.equals(code),通过if判断,相等则可以登录成功,否则登录失败。
8、效果图: