Spring01-小练习-验证码及登录

       目标:1.验证码  2.登录

一、验证码

验证码的实现主要依赖jdk的awt包下的Image类和Graphics2D类来实现

public class ValidCodeServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// 创建图片
		BufferedImage img = new BufferedImage(200, 100, BufferedImage.TYPE_INT_RGB);
		// 获取输出流
		ServletOutputStream os = resp.getOutputStream();
		// 创建画布
		Graphics2D gra= img.createGraphics();
		// 设置画笔
		gra.setColor(Color.white);
		// 将图片填充为白色
		gra.fillRect(0, 0, 200, 100);
		// 验证码 存入list
		List<Integer> validcode = new ArrayList<>();
		// 获取随机验证码
		Random ran = new Random();
		for(int i=0;i<4;i++){
			validcode.add(ran.nextInt(10));
		}
		HttpSession session = req.getSession();
		session.setAttribute("code", ""+validcode.get(0)+validcode.get(1)+validcode.get(2)+validcode.get(3));
		gra.setColor(Color.BLACK);
		gra.setFont(new Font("宋体",Font.BOLD|Font.ITALIC,30));
		for(int i=0;i<4;i++){
			gra.drawString(""+validcode.get(i), i*40, 70);
		}//使用支持给定格式的任意 ImageWriter写入图像到 ImageOutputStream 。                                                                                                                                              
		ImageIO.write(img, "jpg", os);
	}
}

效果图  ----- 后期可以添加一些干扰项,加入横线或者污点

二、登录

创建响应的service类有一集servlet验证表单数据以及验证码

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值