验证码:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int width=800;
int height=200;
//BufferedImage(画板)
BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//Graphics(画笔)
Graphics p=image.getGraphics();
p.setColor(getRandomColor());
//使用画笔填充一个矩形区域
p.fillRect(0, 0, width, height);
//画线
p.setColor(getRandomColor());
p.drawLine(0, height/2,width/2 ,0 );
p.drawLine(0, height/2, width/2, height);
p.drawLine(width/2, 0, width, height/2);
p.drawLine(width/2, height, width,height/2 );
//画图
p.setColor(getRandomColor());
int x=(int) (Math.random()*(width-height));
int y=0;
p.fillOval(x, y, height, height);
//随机的在画板上画100个园
for (int i = 0; i < 100; i++) {
p.setColor(getRandomColor());
int rx=(int) (Math.random()*width);
int ry=(int) (Math.random()*height);
p.fillOval(rx, ry, 2, 2);
}
//随机画100条干扰线
for (int i = 0; i < 10; i++) {
p.setColor(getRandomColor());
int x1=(int) (Math.random()*width);
int y1=(int) (Math.random()*height);
int x2=(int) (Math.random()*width);
int y2=(int) (Math.random()*height);
p.drawLine(x1, y1, x2, y2);
}
//画4个随机字符
int w=(width-5*6)/4;
String code="";
p.setFont(new Font("Arial",Font.HANGING_BASELINE, 55));
for (int i = 0; i < 4; i++) {
String s=getWord();
code=code+s;
p.setColor(getRandomColor());
p.drawString(s, 6+i*(w+6), 50);
}
System.out.println("Fuck!!!!"+code);
request.getSession().setAttribute("code", code);
//ImageIO(快递)
ImageIO.write(image, "png", response.getOutputStream());
}
private Color getRandomColor(){
int r=(int) (Math.random()*256);
int g=(int) (Math.random()*256);
int b=(int) (Math.random()*256);
return new Color(r,g,b);
}
public String getWord(){
int i=0;
while(!(i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122)){
i=(int) (Math.random()*128);
}
char c=(char) i;
return c+"";
}
jsp页面img直接src指向这个servlet。。。。
分享到:
相关推荐
Java实现登录验证码功能,全
使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)发送短信验证码
使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可)发送短信验证码
java实现给手机发送验证码,完成登录验证。利用第三方api接口
java中servlet自定义实现验证码功能核心代码,方便集成与维护。。。
java jsp实现网页上验证码产生功能,简单易懂。
ssm框架实现验证码登录,不需要配置jar包,不需要配置springMVC文件,直接在前台配置标签和JavaScript,然后在controller中配置三个方法,资料齐全
利用Java实现验证码验证功能.主要运用技术为Servlet,session,和画板对象
java 登录案例之添加验证码案例分析
实现的功能比较简单,就是随机产生了四个字符然后输出。效果图如下,下面我会详细说一下实现这个功能用到了那些知识点,并且会把 这些知识点详细的介绍出来。哈哈 ,大神勿喷,对于初学Java的人帮助应该蛮大的。嘿嘿...
有个小demo可以看。用到servlet来实现。
今天整理了一个java实现的汉字输入验证码 主要包含两个类,一个是生成验证码,一个是判断验证码输入是否正确 实现原理非常简单,将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用...
验证码实际上就是随机选择一些字符以图片的形式展现在页面上,如果进行提交操作的同时需要将图片上的字符同时提交,如果提交的字符与服务器session保存的不同,则认为提交...本文介绍了使用servlet来实现随机验证码。
这是我在业余时间用java语言实现的验证码识别功能,其中用到OCR工具,这个需要提前下载安装,不懂的童鞋自行google之。
主要为大家详细介绍了Java实现发送短信验证码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
演示地址:https://loyer.wang/
主要为大家详细介绍了java实现网页验证码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java使用kaptcha实现验证码功能必备jar包,使用简单,web.xml中配置即用。 Java使用kaptcha实现验证码功能必备jar包,使用简单,web.xml中配置即用。
Java实现基于web实现网页端验证码验证功能源代码
验证码概述 为什么使用验证码? 验证码(CAPTCHA)是一种全自动程序。主要是为了区分“进行操作的是不是人”。如果没有验证码机制,将会导致以下的问题: 对特定网站不断进行登录,破解密码; 对某个网站创建...