javaweb实现图片验证码,并进行验证操作

首先我们得从服务端画好验证码,然后通过流的方法传到前台来,然后前台传过来的验证码与后台生成的验证码进行验证。验证码主要是防止一些机器人进行操作的一种手段
不多说,下面先来生成验证码吧,这里我把生成验证码做了一个封装

/**
 * Copyright (C), 2018-2019, XXX有限公司
 * FileName: ImageCode
 * Author:   1543057945
 * Date:     2019/1/11 17:18
 * Description:
 * History:
 *           

这是接受验证码的接口

package Utils;

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;
import java.io.PrintWriter;

@WebServlet(name = "CheckCodeServlet",urlPatterns ={"/checkcode"})
public class CheckCodeServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置页面类型
        response.setContentType("text/html,charset=urf-8");
        response.setCharacterEncoding("utf-8");
        //得到请求参数
        String code = request.getParameter("code");
        //得到session
        HttpSession session = request.getSession();
        //得到生成的验证码
        String imgcode = (String) session.getAttribute("imgcode");
        PrintWriter writer = response.getWriter();
        if (imgcode.equalsIgnoreCase(code)){
            System.out.println(imgcode+"\n"+code);
            writer.print("验证正确");
            //验证之后最好销毁下之前的
            session.setAttribute("imgcode","");
        }else{
            writer.print("验证码错误");
        }
        writer.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

验证码输入正确会提示
javaweb实现图片验证码,并进行验证操作_第1张图片
输入错误则提示javaweb实现图片验证码,并进行验证操作_第2张图片

好了,教程结束,希望能帮到大家,稍作改动就可以拿到实际项目中运用了

你可能感兴趣的:(servlet)