ValidateCode实现验证码

35 篇文章 1 订阅
13 篇文章 5 订阅

目录

前言

创建验证码

创建web项目

登录页面


前言

        验证码是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断地登录尝试。实际上用验证码是现在很多网站同行的方式。我们利用比较简单的方式实现这个功能。这个问题可以由计算机生成并评判。但是必须只有人类才能解答。由于计算机无法解答CAPTCHA问题,所以回答问题的用户就可以被认为是人类。

创建验证码

使用 ValidateCode.jar 包创建验证码

创建web项目

创建Web项目,导入 Servlet-api.jar 、ValidateCode.jar 包

  

登录页面

Login.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>管理员登录页面</title>
  <link type="text/css" rel="stylesheet" href="css/Login.css"/>
</head>

<body>
<div>
  <form action="LoginMgrController" method="post">
    <p>
      账号:<input type="text" name="username"/>
    </p>
    <p>
      密码:<input type="password" name="password"/>
    </p>
    <p>
      验证码:<input tyle="text" name="verification "/>
      <img src="/ValidateCode/validatecodedemo"/>
    </p>
    <p>
      <input type="submit" value="登录"/>
    </p>
  </form>
</div>
</body>
</html>

 

 

Login.css

* {
    margin: 0;
    padding: 0;
}

div {
    width: 270px;
    height: 150px;
    background-color: #ccc;
    margin: 30px auto;
    padding: 20px;
    text-align: left;
}

p {
    margin-top: 10px;
}

[type="text"],[type="password"]{
    width: 200px;
}

[name="verification "]{
    width: 180px;
}

[name="verification "]~img{
    vertical-align: middle;
}

input {
    outline: none;
}

 ValidateCodeDemo.java

package cn.work;

import cn.dsna.util.images.ValidateCode;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/validatecodedemo")
public class ValidateCodeDemo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //创建对象并设置验证码长、宽、验证码个数、干扰线条数
        ValidateCode validateCode = new ValidateCode(100,30,4,30);
        //获取验证码
        String code = validateCode.getCode();
        //如有需要可以将获取到的验证码保存到session中
        HttpSession session = req.getSession();
        session.setAttribute("code",code);
        //将验证码输入到客户端
        validateCode.write(resp.getOutputStream());
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

运行服务器得到验证码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值