package com.zgp.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
public class RandomChineseUtil {
private ByteArrayInputStream image;// 图像
private String str;// 验证码
private RandomChineseUtil() {
init();// 初始化属性
}
/*
* 取得RandomNumUtil实例
*/
public static RandomChineseUtil Instance() {
return new RandomChineseUtil();
}
/*
* 取得验证码图片
*/
public ByteArrayInputStream getImage() {
return this.image;
}
/*
* 取得图片的验证码
*/
public String getString() {
return this.str;
}
private void init() {
// 在内存中创建图象
int width = 176, height = 30;
// 设置备选汉字,剔除一些不雅的汉字
String base = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5\u4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\u7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00\u800c\u5df1\u4e9b\u73b0\u5c71\u6c11\u5019\u7ecf\u53d1\u5de5\u5411\u4e8b\u547d\u7ed9\u957f\u6c34\u51e0\u4e49\u4e09\u58f0\u4e8e\u9ad8\u624b\u77e5\u7406\u773c\u5fd7\u70b9\u5fc3\u6218\u4e8c\u95ee\u4f46\u8eab\u65b9\u5b9e\u5403\u505a\u53eb\u5f53\u4f4f\u542c\u9769\u6253\u5462\u771f\u5168\u624d\u56db\u5df2\u6240\u654c\u4e4b\u6700\u5149\u4ea7\u60c5\u8def\u5206\u603b\u6761\u767d\u8bdd\u4e1c\u5e2d\u6b21\u4eb2\u5982\u88ab\u82b1\u53e3\u653e\u513f\u5e38\u6c14\u4e94\u7b2c\u4f7f\u5199\u519b\u5427\u6587\u8fd0\u518d\u679c\u600e\u5b9a\u8bb8\u5feb\u660e\u884c\u56e0\u522b\u98de\u5916\u6811\u7269\u6d3b\u90e8\u95e8\u65e0\u5f80\u8239\u671b\u65b0\u5e26\u961f\u5148\u529b\u5b8c\u5374\u7ad9\u4ee3\u5458\u673a\u66f4\u4e5d\u60a8\u6bcf\u98ce\u7ea7\u8ddf\u7b11\u554a\u5b69\u4e07\u5c11\u76f4\u610f\u591c\u6bd4\u9636\u8fde\u8f66\u91cd\u4fbf\u6597\u9a6c\u54ea\u5316\u592a\u6307\u53d8\u793e\u4f3c\u58eb\u8005\u5e72\u77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3\u6751\u516b\u96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9\u76f8\u7814\u4eca\u5176\u4e66\u5750\u63a5\u5e94\u5173\u4fe1\u89c9\u6b65\u53cd\u5904\u8bb0\u5c06\u5343\u627e\u4e89\u9886\u6216\u5e08\u7ed3\u5757\u8dd1\u8c01\u8349\u8d8a\u5b57\u52a0\u811a\u7d27\u7231\u7b49\u4e60\u9635\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76\u4f4d\u5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6\u5f20\u56e2\u5c4b\u79bb\u8272\u8138\u7247\u79d1\u5012\u775b\u5229\u4e16\u521a\u4e14\u7531\u9001\u5207\u661f\u5bfc\u665a\u8868\u591f\u6574\u8ba4\u54cd\u96ea\u6d41\u672a\u573a\u8be5\u5e76\u5e95\u6df1\u523b\u5e73\u4f1f\u5fd9\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4\u9ed1\u544a\u754c\u62c9\u540d\u5440\u571f\u6e05\u9633\u7167\u529e\u53f2\u6539\u5386\u8f6c\u753b\u9020\u5634\u6b64\u6cbb\u5317\u5fc5\u670d\u96e8\u7a7f\u5185\u8bc6\u9a8c\u4f20\u4e1a\u83dc\u722c\u7761\u5174\u5f62\u91cf\u54b1\u89c2\u82e6\u4f53\u4f17\u901a\u51b2\u5408\u7834\u53cb\u5ea6\u672f\u996d\u516c\u65c1\u623f\u6781\u5357\u67aa\u8bfb\u6c99\u5c81\u7ebf\u91ce\u575a\u7a7a\u6536\u7b97\u81f3\u653f\u57ce\u52b3\u843d\u94b1\u7279\u56f4\u5f1f\u80dc\u6559\u70ed\u5c55\u5305\u6b4c\u7c7b\u6e10\u5f3a\u6570\u4e61\u547c\u6027\u97f3\u7b54\u54e5\u9645\u65e7\u795e\u5ea7\u7ae0\u5e2e\u5566\u53d7\u7cfb\u4ee4\u8df3\u975e\u4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389\u5ffd\u79cd\u88c5\u9876\u6025\u6797\u505c\u606f\u53e5\u533a\u8863\u822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6";
// 备选汉字的长度
int length = base.length();
// 创建内存图像
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
// 生成随机类
Random random = new Random();
g.fillRect(0, 0, width, height);
// 设定字体
g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
//在图片背景上增加噪点
g.setColor(getRandColor(random,160,200));
g.setFont(new Font("Times New Roman",Font.PLAIN,14));
for (int i=0;i<6;i++)
{
g.drawString("*********************************************",0,5*(i+2));
}
// 备选字体
String[] fontTypes = { "\u5b8b\u4f53", "\u65b0\u5b8b\u4f53",
"\u9ed1\u4f53", "\u6977\u4f53", "\u96b6\u4e66" };
int fontTypesLength = fontTypes.length;
// 取随机产生的认证码(6位数字)
String sRand = "";
for (int i = 0; i < 6; i++) {
int start = random.nextInt(length);
String rand = base.substring(start, start + 1);
sRand += rand;
// 设置字体的颜色
g.setColor(getRandColor(random, 10, 150));
// 设置字体
g.setFont(new Font(fontTypes[random.nextInt(fontTypesLength)],
Font.BOLD, 18 + random.nextInt(6)));
// 将此汉字画到图片上
g.drawString(rand, 24 * i + 10 + random.nextInt(8), 24);
this.str = sRand;/* 赋值验证码 */
}
// 图象生效
g.dispose();
ByteArrayInputStream input = null;
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
ImageOutputStream imageOut = ImageIO
.createImageOutputStream(output);
ImageIO.write(image, "JPEG", imageOut);
imageOut.close();
input = new ByteArrayInputStream(output.toByteArray());
} catch (Exception e) {
System.out.println("验证码图片产生出现错误:" + e.toString());
}
this.image = input;/* 赋值图像 */
}
private Color getRandColor(Random random, int fc, int bc) {
if (fc > 255)
fc = 255;
if (bc > 255)
bc = 255;
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
s2sh实现登录验证码,分页,报表,导出到excel
共121个文件
jar:59个
java:18个
class:18个
4星 · 超过85%的资源 需积分: 10 120 下载量 5 浏览量
2012-04-05
15:46:39
上传
评论 8
收藏 30.95MB ZIP 举报
温馨提示
s2sh实现登录验证码,分页封装,JFreeChart报表,poi记录导出到excel。其中条件查询有待改善。如有不对的地方,还望大家给出意见
资源推荐
资源详情
资源评论
收起资源包目录
s2sh实现登录验证码,分页,报表,导出到excel (121个子文件)
RandomChineseUtil.class 5KB
JFreeChartUtil.class 5KB
ExcelExportUtil.class 4KB
RandomNumLettersUtil.class 4KB
RandomNumUtil.class 3KB
DownloadExcel.class 3KB
StudentDAO.class 3KB
LoginAction.class 2KB
JFreeChartAction.class 2KB
StudentAction.class 2KB
Student.class 2KB
LoginDAO.class 1KB
CommonBaseAction.class 1KB
RandomAction.class 1KB
StudentDAOTest.class 1KB
IllegalLoginInterceptor.class 1KB
User.class 1KB
LoginDAOTest.class 945B
.classpath 923B
org.eclipse.wst.common.component 448B
org.eclipse.wst.jsdt.ui.superType.container 49B
style.css 339B
com.springsource.org.aspectj.tools-1.6.6.RELEASE.jar 8.43MB
poi-ooxml-schemas-3.8-20120326.jar 4.49MB
xmlbeans-2.3.0.jar 2.54MB
hibernate3.jar 2.31MB
poi-3.8-20120326.jar 1.74MB
jfreechart-1.0.14.jar 1.39MB
poi-ooxml-3.8-20120326.jar 911KB
freemarker-2.3.16.jar 860KB
org.springframework.context-3.1.0.RELEASE.jar 810KB
struts2-core-2.2.3.1.jar 756KB
xwork-core-2.2.3.1.jar 602KB
javassist-3.11.0.GA.jar 600KB
org.springframework.beans-3.1.0.RELEASE.jar 575KB
org.springframework.web.servlet-3.1.0.RELEASE.jar 559KB
commons-collections-3.1.jar 546KB
org.springframework.web-3.1.0.RELEASE.jar 528KB
sqljdbc4.jar 455KB
mysql-connector-java-3.1.13-bin.jar 446KB
antlr-2.7.6.jar 433KB
org.springframework.core-3.1.0.RELEASE.jar 432KB
org.springframework.jdbc-3.1.0.RELEASE.jar 392KB
log4j-1.2.15.jar 383KB
org.springframework.orm-3.1.0.RELEASE.jar 369KB
org.springframework.aop-3.1.0.RELEASE.jar 324KB
dom4j-1.6.1.jar 307KB
jcommon-1.0.17.jar 303KB
hibernate-annotations.jar 273KB
commons-lang-2.5.jar 273KB
org.springframework.transaction-3.1.0.RELEASE.jar 240KB
org.springframework.test-3.1.0.RELEASE.jar 224KB
ognl-3.0.1.jar 224KB
org.springframework.jms-3.1.0.RELEASE.jar 194KB
org.springframework.web.portlet-3.1.0.RELEASE.jar 186KB
org.springframework.expression-3.1.0.RELEASE.jar 172KB
commons-dbcp-1.4.jar 157KB
commons-io-2.0.1.jar 156KB
json-lib-2.1-jdk15.jar 122KB
org.springframework.context.support-3.1.0.RELEASE.jar 104KB
commons-pool-1.5.4.jar 94KB
org.springframework.oxm-3.1.0.RELEASE.jar 69KB
struts2-json-plugin-2.2.3.1.jar 66KB
hibernate-commons-annotations.jar 65KB
commons-logging-1.1.1.jar 59KB
commons-fileupload-1.2.2.jar 58KB
org.springframework.asm-3.1.0.RELEASE.jar 52KB
org.springframework.aspects-3.1.0.RELEASE.jar 49KB
ejb3-persistence.jar 49KB
asm-3.1.jar 42KB
asm-commons-3.1.jar 32KB
org.springframework.web.struts-3.1.0.RELEASE.jar 31KB
slf4j-api-1.5.8.jar 23KB
asm-tree-3.1.jar 21KB
struts2-spring-plugin-2.2.3.1.jar 21KB
struts2-jfreechart-plugin-2.2.3.1.jar 15KB
jta-1.1.jar 13KB
org.springframework.instrument.tomcat-3.1.0.RELEASE.jar 11KB
slf4j-log4j12-1.5.8.jar 9KB
org.springframework.instrument-3.1.0.RELEASE.jar 7KB
com.springsource.org.aopalliance-1.0.0.jar 5KB
RandomChineseUtil.java 6KB
JFreeChartUtil.java 4KB
RandomNumLettersUtil.java 3KB
RandomNumUtil.java 3KB
ExcelExportUtil.java 3KB
DownloadExcel.java 2KB
StudentDAO.java 2KB
LoginAction.java 1KB
StudentAction.java 1KB
JFreeChartAction.java 1KB
CommonBaseAction.java 1KB
Student.java 1KB
RandomAction.java 1KB
LoginDAO.java 985B
User.java 691B
IllegalLoginInterceptor.java 665B
StudentDAOTest.java 587B
LoginDAOTest.java 416B
jquery-1.7.1.js 242KB
共 121 条
- 1
- 2
zgpinguo
- 粉丝: 3
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于CM9M0A5+TM1621C驱动设计LCD液晶屏模块ALTIUM硬件(原理图+PCB+封装库)工程文件.zip
- PCT7.C
- 基于SSM的“环卫工管理平台”的设计与实现.zip
- 基于SSM的“医院院内物资管理系统”的设计与实现.zip
- 毕设项目-基于同态加密的联邦学习安全聚合系统python源代码(高分).zip
- 基于同态加密的联邦学习安全聚合系统源码+项目说明(高分项目).zip
- 基于卷积神经网络算法识别猫狗图片项目源码+文档说明(高分大作业).zip
- 处理数据的界面,使用pyqt+pandas开发da-console-tool-master.zip
- pandas 使用笔记study-pandas-master.zip
- 基于matlab的薛定谔方程数值计算应用源码(下载即用).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页