<%@page import="java.awt.Graphics2D"%>
<%@page import="java.util.Random"%>
<%@page import="java.awt.Font"%>
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Graphics"%>
<%@ page import="java.awt.image.BufferedImage"%>
<%@ page language="java" pageEncoding="utf-8" contentType="image/png" %>
<%
int h = 45;
int len = 4;
int w = len*20;
Random r = new Random();
BufferedImage img = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)img.getGraphics();
//g.setColor(Color.RED);
Color c = new Color(245,245,245);
g.setColor(c);
g.fillRect(0,0,w,h); String str = "abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXY3456789"; g.setColor(Color.WHITE); for(int i=0;i<20;i++){
g.setFont(new Font("宋体",Font.BOLD,r.nextInt(20)+10));
c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(50));
String s = String.valueOf(str.charAt(r.nextInt(str.length())));
g.setColor(c);
g.drawString(s, r.nextInt(w),r.nextInt(h));
} StringBuffer ss = new StringBuffer();
for(int i=0;i<len;i++){
int n = -5 +r.nextInt(10);
g.rotate(n * Math.PI / 180);
g.setFont(new Font("宋体",Font.BOLD,r.nextInt(15)+15));
c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(55)+200);
String s = String.valueOf(str.charAt(r.nextInt(str.length())));
ss.append(s);
g.setColor(c);
g.drawString(s, 2+i*20,r.nextInt(10)+25);
}
session.setAttribute("checkcode",ss.toString()); //添加干扰线 点
for(int i=0;i<10;i++){
c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(80));
g.setColor(c);
g.drawLine(r.nextInt(w), r.nextInt(h),r.nextInt(w), r.nextInt(h));
int size = r.nextInt(6)+5;
g.fillOval(r.nextInt(w),r.nextInt(h),size,size);
} c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(150));
int hh = r.nextInt(h);
for(int i=0;i<=300;i++){
g.setColor(c);
double x = i;
double y = hh+15*Math.sin(10*i*Math.PI/360);
g.fillOval((int)x, (int)y, 5,5);
} g.dispose();
ImageIO.write(img, "png", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>

jsp 验证码的更多相关文章

  1. JSP验证码

    ImageServlet.java package cn.hist.test.servlet; import java.awt.Color; import java.awt.Font; import ...

  2. jsp验证码 (通过单击验证码或超链接换验证码)

    #code.jsp <%@ page language="java" import="java.util.*" import="java.awt ...

  3. jsp验证码页面笔记

    首先在网上搜了下jsp生成验证码的代码,如下: package com.servlet; import java.awt.Color; import java.awt.Font; import jav ...

  4. jsp验证码点击刷新

    <img src="<%=basePath%>manage/code" alt="验证码" height="20" ali ...

  5. JSP验证码。

    package com; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.aw ...

  6. 生成jsp验证码的代码详解(servlet版)

    package util; import java.util.*; import java.io.*; import java.awt.*; import java.awt.image.*; impo ...

  7. web项目 验证码 *** 最爱那水货

    1. jsp代码 : <Script> function changeImg(){ document.getElementById("certImg").src =&q ...

  8. 手把手教你做JavaWeb项目:登录模块

    现如今,无论是客户端还是移动端,无论是游戏登陆还是社交平台登陆,无处不在的“登陆”.那么你知道怎么制作吗?今天就为你娓娓道来: 用户登录 在各大信息管理系统中,登录功能是必不可少的,他的作用就是验证用 ...

  9. jsp页面验证码(完整实例)

    项目结构如下,MyEclipse中新建一个Web Project,取名servlet 1.src下new一个servlet类 package com.servlet; import java.awt. ...

随机推荐

  1. 解决Linux系统没有/etc/sysconfig/iptables文件

    Linux系统中,防火墙默认是不开启的,一般也没有配置过任何防火墙的策略,所以不存在/etc/sysconfig/iptables文件. 一.常规解决方法: 1.在控制台使用iptables命令随便写 ...

  2. [Cypress] install, configure, and script Cypress for JavaScript web applications -- part1

    Despite the fact that Cypress is an application that runs natively on your machine, you can install ...

  3. python 学习笔记 13 -- 经常使用的时间模块之time

    Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...

  4. Solidworks打印工程图超出范围了怎么办

    打印预览,边框部分无法显示   页面设置,比例改为90%,试一下   正常了,如果你还是无法正常显示,就再改小比例

  5. javaweb 中的过滤器 包装器

    过滤器要做的事情: 请求过滤器:完毕安全检查,又一次格式化请求首部或体.建立请求审计或日志 响应过滤器:     压缩响应流,追加或改动响应流创建一个全然不同的响应. 过滤器和servlet三个相似地 ...

  6. Cocos2d-x 3.0 简捷的物理引擎

    Cocos2d-x 3.0 开发(九)使用Physicals取代Box2D和chipmunk http://www.cocos2d-x.org/docs/manual/framework/native ...

  7. Node.js机制及原理理解初步

    http://blog.csdn.net/leftfist/article/details/41891407 一.node.js优缺点 node.js是单线程. 好处就是 1)简单 2)高性能,避免了 ...

  8. 【HDU 5384】Danganronpa(AC自己主动机)

    看官方题解貌似就是个自己主动机裸题 比赛的时候用kuangbin的AC自己主动机模板瞎搞的,居然A了,并且跑的还不慢.. 存下模板吧 #include<cstdio> #include&l ...

  9. positive 相对其正常位置,那什么是正常位置: 请问调试,请问浏览器

    [问题代码 <!DOCTYPE html><html><head> <title></title> <meta charset=&qu ...

  10. 在C语言中使用libiconv进行编码转换的示例

    libiconv_sample.c #include <stdio.h> #include <malloc.h> #include "libiconv/iconv.h ...