用Servlet中的HttpServlet实现登录验证码功能

1,首先在web项目下导入自动生成验证码的jar包(ps:也可以自己用随机数来写一个验证码图像,我有一篇博文就是讲的这个)

导入到lib包下,如图



1,首先在Servlet中,让response对象有请求就返回给客户端验证码图像

Servlet中的仅需要几行代码就可以实现了,验证码的生成了!

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//告诉客户端不使用缓存
		response.setHeader("pragma", "no-cache");
		response.setHeader("cache-control", "no-cache");
		response.setIntHeader("expires", 0);
		
		//创建validateCode包下面的对象
		ValidateCode vc = new ValidateCode(110, 25, 4, 9);
		String code = vc.getCode();//得到生成的字符
		vc.write(response.getOutputStream());
		
	}

2,在页面中来显示出咱们写好的验证码,用js代码来设置看不清楚,换一张。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	function changeCode(){
		//得到图片元素
		var img = document.getElementsByTagName("img")[0];
		//img.setAttribute("src","/day09_00_HttpServletResponse/servlet/demo4");//XML Dom 语法
		img.src = "/day09_00_HttpServletResponse/servlet/demo4?time="+new Date().getTime();
	}
</script>
</head>
<body>
	<form action="#" method="post">
		用户名:<input type="text" name="userName"/><br>
		密码:<input type="password" name="pwd"/><br>
		验证码:<input type="text" name="code"/>
		<img src="/day09_00_HttpServletResponse/servlet/demo4" οnclick="changeCode()"/><a href="javascript:changeCode()" >看不清换一张</a><br>
		<input type="submit" value="登录"/><br>
	</form>
</body>
</html>


最后实现的效果如下,每一次刷新都会用不同的验证码出现



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值