java中的接口是类吗
227
2023-05-21
java 制作验证码并进行验证实例详解
java 制作验证码并进行验证实例详解
在注册、登录的页面上经常会出现验证码,为了防止频繁的注册或登录行为。下面是我用java制作的一个验证码,供初学者参考,做完验证码之后,我们可以用ajax进行验证码验证。
功能一:验证码制作的代码,点击图片,验证码进行更换
/**
* 显示验证码图片
*/
public void showCheckCode(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 调用业务逻辑
String checkCode = getCheckCode();
//将验证码字符放入session域对象中
req.getSession().setAttribute("checkCode", checkCode);
//图片宽
int width = 80;
//图片高
int height = 30;
//在内存中创建一个图片
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//获取一个画笔
Graphics g = image.getGraphics();
//设置画笔颜色,用灰色做背景
g.setColor(Color.GRAY);
//向Image中填充灰色
g.fillRect(0,0,width,height);
Random r = new Random();
//设置3条干扰线
for (int i = 0; i < 3; i++) {
g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));
g.drawLine(r.nextInt(80)XobZJvi, r.nextInt(30), r.nextInt(80), r.nextInt(80));
}
//设置验证码字符串的颜色
g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));
//设置字符的大小
g.setFont(new Font("黑体",Font.BOLD,24));
//在图片中写入验证码字符串
g.drawString(checkCode,15,20);
//将Image对象以PNG格式输出给所有的客户端
ImageIO.write(image,"PNG",resp.getOutputStream());
}
/**
* 获取4位验证码中的4位随机字符串
*/
public static String getCheckCode(){
//验证码中的字符由数字和大小写字母组成
String code = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
Random r = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 4; i++) {
sb.append(code.charAt(r.nextInt(code.length())));
}
return sb.toString();
}
jsp页面
function changeCodeImage(img){
img.src = "${pageContext.request.contextPath}/UserServlet?method=showCheckCode&time="+new Date().getTime();
}
功能二:ajax动态验证验证码
/**
* 验证验证码
*/
public void checkCode(HttpServletRequest http://req, HttpServletResponse resp) throws ServletException, IOException {
//获取从页面中接收到的验证码参数
String checkCode = req.getParameter("checkCode");
//从session域对象中获取验证码
String sessionCode = (String) req.getSession().getAttribute("checkCode");
//判断验证码是否相同
if (checkCode.equalsIgnoreCase(sessionCode)) {
resp.getWriter().print(true);
}else {
resp.getWriter().print(false);
}
jsp页面
function changeCodeImage(img){
img.src = "${pageContext.request.contextPath}/UserServlet?method=showCheckCode&time="+new Date().getTime();
}
function checkCodeMethod(code){
$.get("${pageContext.request.contextPath}/UserServlet?method=checkCode",
{ checkCode: code},
functXobZJviion(data){
if (data == 'true') {
document.getElementById("checkCodeSpan").innerHTML = "验证码正确!";
}else {
document.getElementById("checkCodeSpan").innerHTML = "验证码错误!";
}
}
);
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~