在网上看见一篇不错的文章,写的详细。
以下内容引用那篇博文。转载于《http://www.cnblogs.com/whgk/p/6426072.html》,在此仅供学习参考之用。
其实实现代码的逻辑非常简单,真的超级超级简单。
1、在登录页面上login.jsp将验证码图片使用标签<img src="xxx">将绘制验证码图片的url给它
2、在服务器端就两个servlet,一个就是用来绘制验证码图片的VerifyCodeServlet,另一个就是登录时验证验证码是否点写正确或是否重复提交的LoginServlet
3、在VerifyCodeServlet中,将验证码的四个字母存入session中,然后在LoginServlet中,将请求中提交过来的验证码与session中的进行对比,如果正确,则验证成功,并且将session中的验证码删除,为什么要删除?保证session中的数据只能被用一次,防止重复提交数据,如果不正确,就使用request,将错误信息保存,然后请求转发到登录页面显示错误信息,如果发现session中的数据为null,说明重复提交了数据,也将错误信息用同样的方法返回到登录页面。
难点就在于:VerifyCodeServlet的代码实现.对绘图的代码不是很熟悉。
login.jsp
<body>
<%
String msg = (String)request.getAttribute("msg");
if(msg != null){
out.print(msg);
}
%>
<form action="/test01/LoginServlet" method="post">
用户名:<input type="text" name="username" /> <br/>
验证码:<input type="text" name="verifyCode" size="5" /> <img src="/test01/VerifyCodeServlet" /> <br/>
<input type="submit" value="提交"/>
</form>
</body>