jsp 验证码
<%@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 验证码的更多相关文章
- JSP验证码
ImageServlet.java package cn.hist.test.servlet; import java.awt.Color; import java.awt.Font; import ...
- jsp验证码 (通过单击验证码或超链接换验证码)
#code.jsp <%@ page language="java" import="java.util.*" import="java.awt ...
- jsp验证码页面笔记
首先在网上搜了下jsp生成验证码的代码,如下: package com.servlet; import java.awt.Color; import java.awt.Font; import jav ...
- jsp验证码点击刷新
<img src="<%=basePath%>manage/code" alt="验证码" height="20" ali ...
- JSP验证码。
package com; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.aw ...
- 生成jsp验证码的代码详解(servlet版)
package util; import java.util.*; import java.io.*; import java.awt.*; import java.awt.image.*; impo ...
- web项目 验证码 *** 最爱那水货
1. jsp代码 : <Script> function changeImg(){ document.getElementById("certImg").src =&q ...
- 手把手教你做JavaWeb项目:登录模块
现如今,无论是客户端还是移动端,无论是游戏登陆还是社交平台登陆,无处不在的“登陆”.那么你知道怎么制作吗?今天就为你娓娓道来: 用户登录 在各大信息管理系统中,登录功能是必不可少的,他的作用就是验证用 ...
- jsp页面验证码(完整实例)
项目结构如下,MyEclipse中新建一个Web Project,取名servlet 1.src下new一个servlet类 package com.servlet; import java.awt. ...
随机推荐
- 正則表達式--js使用案例
前言:在前端页面使用中.遇到日期格式的验证.開始使用了一款表单控件验证.可是不兼容!!并且使用起来还受到非常大约束.所以就决定自己写原生js. 为了完毕日期格式的验证.第一步,当然是学会使用正則表達式 ...
- linux系统(ubuntu14.04)安装mentohust完毕校园网锐捷认证
近来升级电脑又一次做了系统.再次面临这linux系统下的各种校园网上网限制. 我在这里採用了mentohust来完毕锐捷认证. 这里我们选择Mentohust取代锐捷. Mentohust 是由华中科 ...
- 用rsync命令删除大文件夹
删除大文件夹 rsync 命令做同步文件用的命令 我们可以借助其快速的运行 来对大文件夹删除:原来就是 新建一个空文件夹 然后把这个空文件夹同步到一个大文件夹下面: 这样会删除大文件夹下面的内容 是高 ...
- Android中View绘制流程以及invalidate()等相关方法分析(转)
转自:http://blog.csdn.net/qinjuning 前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 .同时真挚地向渴 ...
- Android Auto Scroll ViewPager (Smooth)
项目信息 项目地址 https://github.com/benniaobuguai/android-auto-scroll-viewpager 特性 支持自动平滑切换海报.相册等,无限次循环轮播 手 ...
- Cocos2d-x 精灵碰撞检測(方法一)
声明函数碰撞检測函数,两个精灵和重写update bool isCollision( CCPoint p1,CCPoint p2,int w1,int h1,int w2,int h2 ); CCSp ...
- 不能选择sublime作为默认打开方式的解决办法
Sublime Text 绿色版删除后无法设置为默认打开方式…而且网上也没有给出明确的解决办法 注册表的解决办法: 删除 HKEY_CURRENT_USER\Software\Classes\Appl ...
- (转载)解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes
今天想用用MySQL 数据库 谁知道老提示 1045 access denied for user 'root'@'localhost' using password yes 最后在csdn 上找到 ...
- WTF
WTF ,luna黑色主题比较sublime 还是差点!
- 浅谈JavaScript的Canvas(绘制图形)
HTML5中新增加的一个元素canvas,要使用canvas元素,浏览器必须支持html5.通过canvas标签来创建元素,并需要为canvas指定宽度和高度,也就是绘图区域的大小. <canv ...