简单的web登录带验证码
验证码的生成
为何会有验证码的存在呢?或者说验证码存在的意义,黑格尔曾经在《法哲学原理》提出存在即合理是客观唯心主义的理论,意思是凡是合乎理性的东西都是现实的;凡是现实的东西都是合乎理性的。验证码的存在是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。下面为大家奉上代码。
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
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.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@WebServlet("/captcha")
public class CaptcheController extends HttpServlet {
private final int WIDTH = 100;
private final int HEIGHT = 80;
@Override
/*
设置相关属性
*/
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
BufferedImage img = new BufferedImage(WIDTH,HEIGHT, BufferedImage.TYPE_INT_RGB);
Graphics g = img.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0,0,WIDTH,HEIGHT);
g.setFont(new Font("黑体",Font.BOLD,20));
g.setColor(Color.BLACK);
String code = randomString(6)