public class AuthImage extends HttpServlet{
private static final String CONTENT_TYPE = "text/html; charset=gb2312";
//设置字母的大小,大小
private Font mFont = new Font("Times New Roman", Font.PLAIN, 20);
public void init() throws ServletException
{
super.init();
}
//把色彩控制在一定的范围内,使显示效果更佳
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);
}
/*Color getRandColor()
{
Random random = new Random();
int r = 180 + random.nextInt(50);
int g = 180 + random.nextInt(50);
int b = 180 + random.nextInt(50);
return new Color(r,g,b);
}*/
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
//表明生成的响应是图片
response.setContentType("image/jpeg");
int width=70, height=21;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor(200,250));
// g.setColor(getRandColor());
g.fillRect(1, 1, width-1, height-1);
g.setColor(new Color(102,102,102));
g.drawRect(0, 0, width-1, height-1);
g.setFont(mFont);
g.setColor(getRandColor(160,200));
//g.setColor(getRandColor());
//画随机线
for (int i=0;i<155;i++)
{
int x = random.nextInt(width - 1);
int y = random.nextInt(height - 1);
int xl = random.nextInt(6) + 1;
int yl = random.nextInt(12) + 1;
g.drawLine(x,y,x + xl,y + yl);
}
//从另一方向画随机线
for (int i = 0;i < 70;i++)
{
int x = random.nextInt(width - 1);
int y = random.nextInt(height - 1);
int xl = random.nextInt(12) + 1;
int yl = random.nextInt(6) + 1;
g.drawLine(x,y,x - xl,y - yl);
}
//生成随机数,并将随机数字转换为字母
String sRand="";
for (int i=0;i<4;i++)
{
int itmp = random.nextInt(26) + 65;
char ctmp = (char)itmp;
sRand += String.valueOf(ctmp);
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(String.valueOf(ctmp),15*i+10,16);
}
HttpSession session = request.getSession(true);
session.setAttribute("rand",sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
}
}
分享到:
相关推荐
Servlet随即产生验证码,在页面显示。通过Servlet验证。简单实用。
使用jsp/java-ee编程,页面提交后处理的servlet产生页面验证码。表单页面产生验证码。只有servlet文件。
servlet 验证码用于注册时自动产生验证码
所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。
生成验证码的源代码。由servlet生成验证码和...能够产生验证码但是如何传输和验证呢,一般是传回服务器在action里做验证。 我还是喜欢js页面产生验证码,因为简单,虽然效果差了点。所以也附带了个js生成验证码的例子。
java 产生随机验证码,两种方式,servlet和jsp. 带刷新按钮,点击可自动刷新验证码。
两种javaweb验证码产生方法。包含源码和产生页面。源码请自建servlet后粘贴后即可页面显示出。
java 产生随机验证码,servlet实现 点击图片可自动刷新验证码。 支持字母(可分大小写),数字
Java产生简单算术验证码图片,此为Servlet需要配置web.xml,配置方法如下: <servlet> <servlet-name>authimg</servlet-name> <servlet-class>img.AuthImg</servlet-class> </servlet> <servlet-mapping> ...
3、编写一个servlet,在servlet中产生图形验证码 ------------------------------------------------------------ //1、给客户端作出的回应是以图片的方式来回应 response.setContentType("image/jpeg"); ...
一个在登陆的时候产生验证码的类,可以根据需要转换成自己的action servlet 等 调用的部分可以用一个img 标签关联一个超连接就ok 了
定义图片的width、定义图片的height、定义图片上显示验证码的个数 创建字体,字体的大小应该根据图片的高度来定 ...随机产生的颜色将验证码绘制到图像中 四位数字的验证码保存到Session中 将图像输出到Servlet输出流中
随机生成验证码(JSP、Servlet)
jsp+servlet实现的OCR识别系统简单功能,输入手机号产生验证码 登陆后上传图片,支持中文文件名图片的上传
5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动...
5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动...
5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动...
5.1 servlet与servlet容器 182 5.2 servlet容器的分类 183 5.3 servlet和其他技术的比较 183 5.4 tomcat介绍 183 5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动...
这是一个客户端+管理员后台的项目,注册使用到了ajax异步请求,注册的时候有验证码检验用户是否为机器人,管理员页面实现了分页功能。和基本的增删改查,部分表的增删改查还没有完善。 客户端可以注销退出当前登录,...
课程设计:用户需要使用新闻管理功能时,需要先以管理员身份登录系统。...用户在登录页面输入用户名和密码以及随机产生的验证码,若登录失败,则清空输入,并简要显示错误原因,管理员登录页面等待下一次登录。