Java实现登录界面的验证码
来源:互联网 发布:儿童画图软件 编辑:程序博客网 时间:2024/05/31 13:16
首先我们创建一个GetRandImage类用来获取随机验证码和图片
package com.zhu.util;import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Transparency;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.Random;import javax.imageio.ImageIO;public class GetRandImage {private int width;private int height;private String rand;public GetRandImage(int width,int height){this.width=width;this.height=height;}public BufferedImage createRandImage(){ //创建验证码图片Graphics2D g2d=(Graphics2D)new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB).getGraphics();//创建背景透明的图片BufferedImage image=g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);g2d=image.createGraphics();Random random=new Random();Color color;for(int i=0;i<200;i++){ //画200个小圆点用来干扰读取验证码int x=random.nextInt(width);int y=random.nextInt(height);color=new Color(random.nextInt(120)+130,random.nextInt(120)+130,random.nextInt(120)+130);g2d.setColor(color);g2d.fillOval(x, y, 2, 2);}g2d.setFont(new Font("宋体",1, 30));for(int i=0;i<4;i++){int x=random.nextInt(10); //随机产生验证码rand+=x;color=new Color(random.nextInt(130),random.nextInt(130),random.nextInt(130));g2d.setColor(color);g2d.drawString(x+"",8+i*21,30);}g2d.dispose();return image;}public String getRand(){ //获取验证码return rand;} //先用一个main函数测试能后生成我们需要的图片 public static void main(String[] args) {System.out.println("好了");GetRandImage get=new GetRandImage(100, 40);BufferedImage image=(BufferedImage)get.createRandImage();File file=new File("e://my.jpg");try {ImageIO.write(image, "png", file);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}然后创建一个 image.jsp文件 contentType="image/jpeg"表示要jsp输出的内容为图片
<%@ page language="java" contentType="image/jpeg"%><%@page import="com.zhu.util.GetRandImage,javax.imageio.ImageIO,java.awt.image.BufferedImage,java.util.*" %><% response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires", 0);GetRandImage get=new GetRandImage(100,40);BufferedImage image=get.createRandImage();String randString=get.getRand();session.setAttribute("randString", randString);ImageIO.write(image, "png", response.getOutputStream());out.clear();out = pageContext.pushBody();%>
此时我们就可以写一个登录界面用来看看我们的验证码是什么效果(只需要一个img标签即可显示,<img alt="" src="image.jsp">)
下面是效果图
阅读全文
0 0
- Java实现登录界面的验证码
- Java实现登录界面的验证码总结
- java图形登录界面验证码的实现
- 登录界面的验证码
- 验证码类的使用之登录界面的实现
- ASP.NET下登录界面验证码的实现
- 实现带有验证码的ajax局部刷新登录界面
- java实现简单的登录验证码
- 登录界面+验证码
- js实现登录界面验证码生成及验证
- java实现登录验证码
- 系统登录界面的验证码
- 登录界面验证码的生成
- 登录界面中的验证码的使用
- Java实现登录验证码验证
- java实现简单的QQ登录界面
- java实现一个简单的登录界面
- 登录验证码的实现
- 顺序表和单链表
- 前端路由与后端路由
- 安装Android Studio 3.0 预览版
- iOS 编译后的Archiveing 界面在 Windows-organizer 下
- SecureCRT 实用配置
- Java实现登录界面的验证码
- 探讨SQL Server并发处理存在就更新七种解决方案-推荐使用方案一和方案三
- AEM(Adobe Experience Manager)发现新大陆之一(认识AEM)
- 计算Python的代码块或程序的运行时间
- Git冲突解决方案
- 2017年勒索软件背后的损失可高达50亿美金,你们还能hold住吗?
- 接电源,不接jtag,stm32无法启动
- iOS 画线(曲线、虚线、直线)
- 杭电ACM2033:A+B