1.导入ValidateCode 依赖包 (下载)
后端代码:
package com.utils;
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;
//验证码的功能(导入ValidateCode.jar 包)
@WebServlet("/validate")
public class Validate extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
ValidateCode vc = new ValidateCode(100,30,4,10); //宽,高,验证码个数,行数的个数
String code = vc.getCode(); //拿到验证码
//把验证码放到session 里面去(Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。)
HttpSession session = request.getSession(); //如果有session 就不出创建,没有就创建
session.setAttribute("code",code);
//响应给客服端
vc.write(response.getOutputStream());
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
前端代码
<input type="text" name="inputVcode" >
<img src="/src/validate" alt="验证码" /> <br><br>
<a href=" http://localhost:8080/src/addtion.html"/>注册
String inputVcode =request.getParameter("inputVcode");
String codes = (String)request.getSession().getAttribute("code");
//不判断字母大小写 equalsIgnoreCase
if( !inputVcode.isEmpty() & inputVcode.equalsIgnoreCase(codes)){
System.out.println("验证码成功");
}else{
System.out.println("验证码失败");
}