- 浏览: 477111 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
zs769666156:
楼主能不能给个ER图,通过ER图来分析一下这个段代码?想好好学 ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
lucky1035:
我只是想长肉 写道源代码下载过来缺少三个包,jsqlparse ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
我只是想长肉:
源代码下载过来缺少三个包,jsqlparser 14 这个哪里 ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
wamdy:
多谢博主,找了许久,我看能不能做成eclipse下sql语句的 ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
zzl1787:
怎么下不下来啊
PDF套打模板制作(一)
在B/S结构项目中,为防止别心用心的用户尝试登录通常采用生成校验码图片的方式进行控制,图片中的数字是随机生成的。以下代码是具体实现方法:
图片生成实用类:
- import java.awt.*;
- import java.awt.image.*;
- import java.util.*;
- public class ImageCode {
- public String sRand = "";
- public Color getRandColor(int fc, int bc) {// 给定范围获得随机颜色
- Random random = new Random();
- 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);
- }
- public BufferedImage creatImage() {
- // 在内存中创建图象
- int width = 60, height = 20;
- BufferedImage image = new BufferedImage(width, height,
- BufferedImage.TYPE_INT_RGB);
- // 获取图形上下文
- Graphics g = image.getGraphics();
- // 生成随机类
- Random random = new Random();
- // 设定背景色
- g.setColor(getRandColor(200, 250));
- g.fillRect(0, 0, width, height);
- // 设定字体
- g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
- // 随机产生155条干扰线,
- g.setColor(getRandColor(160, 200));
- for (int i = 0; i < 155; i++) {
- int x = random.nextInt(width);
- int y = random.nextInt(height);
- int xl = random.nextInt(12);
- int yl = random.nextInt(12);
- g.drawLine(x, y, x + xl, y + yl);
- }
- // 取随机产生的认证码(4位数字)
- for (int i = 0; i < 4; i++) {
- String rand = String.valueOf(random.nextInt(10));
- sRand += rand;
- // 将认证码显示到图象中
- g.setColor(new Color(20 + random.nextInt(110), 20 + random
- .nextInt(110), 20 + random.nextInt(110)));// 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
- g.drawString(rand, 13 * i + 6, 16);
- }
- // 图象生效
- g.dispose();
- return image;
- }
- /**
- * @return Returns the sRand.
- */
- public String getSRand() {
- return sRand;
- }
- }
生成图片的servlet:
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import javax.imageio.ImageIO;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- * 生成随机验证码图片
- *
- * @author lixy 2007-7-16 11:16:50
- *
- */
- public class RandomImgCodeServlet extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("image/jpeg");
- ImageCode image = new ImageCode();
- response.setHeader("Pragma", "No-cache");
- response.setHeader("Cache-Control", "no-cache");
- response.setDateHeader("Expires", 0);
- try {
- // 输出图象到页面
- BufferedImage img = image.creatImage();
- request.getSession().setAttribute("rand", image.getSRand());
- //System.out.println("image Rand Code = "+image.getSRand());
- ImageIO.write(img, "JPEG", response.getOutputStream());
- response.getOutputStream().flush();
- response.getOutputStream().close();
- } catch (Exception e) {
- System.out.println("错误:" + e);
- }
- }
- }
记得在web.xml中对上面这个servlet进行配置,我的配置是:
xml 代码
- <servlet>
- <servlet-name>RandomImgCodeServletservlet-name>
- <servlet-class>org.lixy.util.RandomImgCodeServletservlet-class>
- <servlet>
- <servlet-mapping>
- <servlet-name>RandomImgCodeServletservlet-name>
- <url-pattern>/servlet/randomImgCodeServleturl-pattern>
- <servlet-mapping>
在需要放置此图片的地方加入如下代码:
html代码
- <img src="/servlet/randomImgCodeServlet" class="imageRandom" height="18px"/>
大功告成了。。。呵呵,简单吧
评论
4 楼
lxy19791111
2008-07-02
老兄,知识要灵活运用...不是什么代码Copy过去就没事了!
3 楼
hqingjin83
2008-06-20
<img src="/servlet/randomImgCodeServlet" class="imageRandom" height="18px"/>
这个有问题吧?应为:
<img src="servlet/randomImgCodeServlet" class="imageRandom" height="18px"/>
这个有问题吧?应为:
<img src="servlet/randomImgCodeServlet" class="imageRandom" height="18px"/>
2 楼
hqingjin83
2008-06-20
唔。。。验证码无法显示啊
1 楼
hqingjin83
2008-06-20
[color=blue][/color][size=medium][/size]
很好!刚好需要,呵呵。。。
很好!刚好需要,呵呵。。。
发表评论
-
访问FreeMarker的工具类
2009-12-13 20:39 7871import java.io.File; import ja ... -
java操作json的通用类
2009-10-25 16:21 2459import java.text.ParseException ... -
利用Axis Ant Task生成Web Service客户端代码(build.xml)
2009-03-03 12:08 3546利用Axis Ant Task生成Web Serv ... -
支付通用工具类(适用于支付及查询)
2009-03-02 12:13 1518最近十天时间都在做跟在线支付相关的开发工作,使用的 ... -
将request中的数据转换到Map中
2009-03-02 12:01 2491以下代码段是将请求request中的数据转换到Ma ... -
基于HttpClient的HttpUtils(后台访问URL)
2009-03-02 11:53 36819最近做在线支付时遇到需要以后台方式访问URL并获取 ... -
jmap + Eclipse MAT :排查内存泄漏的好工具
2008-12-13 11:06 8220当服务器应用占用了过多内存的时候,如何快速定位 ... -
JSON的序列化和反序列化
2008-08-01 16:02 8256JsonTools是一个不错的JSON序列化和反序列化 ... -
Frontend plus 2.03
2007-11-06 21:43 6211class反编译工具,已经破解。 -
Java面试题
2007-09-16 13:35 1522有两个数组,而且都已排序好,现要求将它们合并到一个新的数组c中 ... -
《Design By Contract原则与实践》精彩片断选读
2007-08-30 16:15 2064《Design By Contract原则与实践》精彩片断选 ... -
Array和Vector,HashMap的区别 [转]
2007-08-30 16:06 2355[转]自 http://blog.hunan2 ... -
Jocky--Java混淆编译器
2007-08-15 13:50 6581以下内容摘自Jocky文档 ... -
轻量级JNDI数据源创建
2007-07-30 17:06 2319程序中手工创建JNDI数据源的代码如下: java ... -
JFreeChart API(中文)[转载]
2007-07-16 09:14 4359[转载自: http ... -
Dozer自动给对象赋值,比BeanUtils好用多了
2007-07-03 10:04 15079在日常的项目中,经常会遇到各层对象之间相互进行值传递的 ... -
Java访问LDAP示例
2007-07-02 11:16 2822在最近一个项目中需要访问LDAP(Domino 6.5),示例 ... -
判断一个IP地址是否为内网IP
2007-07-02 10:59 11529java 代码 public static bo ...
相关推荐
XVcode,Web 动态验证码图片生成工具,用于生成随机验证码图片及返回验证码。以随机圆圈为干扰背景,增加随机前后景透明度,并提供3种gif动态图。PngGenerator :GifGenerator:Gif2Generator:Gif3Generator:该项目...
VS2008 下校验码生成项目,可自动生成校验码,产生图片格式的校验码~~~~~~~~~~~~~~~~~~~~~~~~~~
校验、生成 二维码,主要是 图片分割后 选取二维码图片 校验。
ASP.NET生成图片验证码 ASP.NET生成图片验证码 ASP.NET生成图片验证码
过于规则的校验码(无旋转)很容易被灌水机等程序之别,本程序生成旋转的校验码算法,c++ gui环境,很容易移植到其它开发环境
校验码类型可以是数字、大写字母、小写字母以及三者的混合体,支持显示弯曲排列的字符,支持背景图像选择,还可设置验证码长度等。 为了使用方便,本程序还附带有一个验证码验证模块,可验证生成的验证码是否准确...
c# 用于校验的正则表达式总结 c# 用于校验的正则表达式总结
使用SpringBoot搭建,jdk1.8,layui前端框架。验证码图片文字随机生成,可以选择中文、字母、数字、字母数字的组合。可以根据自己的需要进行修改。
一个.net core,跨平台的图形验证码生成工具包,基于ImageSharp。
都弄好的 按空格键生成验证码 !!!
包括web项目里面非常常用的重复性代码,如校验用户名、手机号、身份证号、密码、等等,是否符合安全规则。 生成绝不重复的订单号。 生成图片验证码。 json解析。 全是自己手写,供大家复用。
// 获得session中的校验码VERIRY_CODE String verifyCode = (String)session.getAttribute("VERIRY_CODE"); OperatorLoginForm operatorLoginForm = (OperatorLoginForm)form; // 获取验证码 String ...
做一个后台登陆需要用到校验码,前台的用户跟踪需要用到SessionID,当然,默认的PHP开启了Session以后就有了一个SessionID,但是我需要自己的,并且能够存储进数据库,那么我就尝试了一下,构造了以下的函数。
主要介绍了Javaweb开发中通过Servlet生成验证码图片的相关资料,需要的朋友可以参考下
思路很简单=》 生成一个随机数-》保存到服务端Session-》生成随机码对应的图片给前端-》登录的时候进行校验(也可以在后端进行随机码的token加密,存到Cooick里面在前端进行校验) 第一步:生成随机数 private ...
生成提交校验码图片 ★ 搜索、列表文件以详细列表页(留言板风格)显示 生成权限,限制用户对指定页面的添加、删除、编辑权 将查询结果导出为CSV、HTML、EXCEL文件 ★ 生成不同选择字段的SQL语句 生成数据库...
生成提交校验码图片 ★ 搜索、列表文件以详细列表页(留言板风格)显示 生成权限,限制用户对指定页面的添加、删除、编辑权 将查询结果导出为CSV、HTML、EXCEL文件 ★ 生成不同选择字段的SQL语句 生成数据库...
生成提交校验码图片 ★ 搜索、列表文件以详细列表页(留言板风格)显示 生成权限,限制用户对指定页面的添加、删除、编辑权 将查询结果导出为CSV、HTML、EXCEL文件 ★ 生成不同选择字段的SQL语句 生成数据库...