JavaWeb——【Servlet】——设置验证码并进行验证

设置验证码并进行验证


效果图

在这里插入图片描述

下载google的jar包

链接:https://pan.baidu.com/s/16ga1exx5Wdb0hmrvB-AoRA
提取码:uz1o

导入Jar包到项目中

把jar包粘贴到一个文件夹下面,比如web我粘贴到了lib文件夹下
在这里插入图片描述
然后右击jar包,选择build path——>add to path,即可完成导入

在XML配置Servlet

这个Servlet就是运行验证码的Servlet,对servlet进行配置

<servlet>
   <servlet-name>Kaptcha</servlet-name>
   <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>	
<servlet-mapping>
 <servlet-name>Kaptcha</servlet-name>
 <url-pattern>/kaptcha</url-pattern> 
</servlet-mapping>

编写HTML

图片是src就是我们刚刚在XML里配置的Servlet的映射

form提交的路径是我们验证的Servlet,下面会说,用来验证我们的验证码

	<form action = "action" method = "post">
		<image src = "kaptcha"></image>
		验证码:<input type = "text" name  = "answer"/>
		<input type = "submit" value = "提交"/>
	</form>

进行验证的Servlet

1.获取表单用户自己填写的验证码
2.获取google验证码正确答案
3.两者对比,判断正误

	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置编码格式,防止乱码
		resp.setContentType("text/html;charset=utf-8");
		
		//获取表单提交来的用户填写的验证码
		String answer = req.getParameter("answer");
		
		//获取Session度低下
		HttpSession session = req.getSession();
		
		//获取google验证码真实答案
		String uanswer = (String) session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
		PrintWriter out = resp.getWriter();
		
		//进行比较,输出结果
		if(answer.equals(uanswer)){
			out.write("验证码正确");
		}else
			out.write("验证码错误");
		out.flush();
		out.close();
	}

其中Session的getAttribute后面的com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY是固定的。

如果需要项目源码,请留言

发布了230 篇原创文章 · 获赞 250 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/weixin_42247720/article/details/103727007