`

二利用servlet生成简单的注册码

    博客分类:
  • Java
阅读更多

Java代码
  1. <servlet>
  2. <servlet-name>image</servlet-name>
  3. <servlet-class >org.test.web.AuthImage</servlet- class >
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>image</servlet-name>
  7. <url-pattern>/authImage</url-pattern>
  8. </servlet-mapping>

其servlet源代码:

Java代码
  1. public   class  AuthImage  extends  HttpServlet  
  2. {  
  3.   
  4.     private   static   final  String CONTENT_TYPE =  “text/html; charset=gb2312″ ;  
  5.     //设置字母的大小,大小   
  6.     private  Font mFont =  new  Font( “Times New Roman” , Font.PLAIN,  17 );  
  7.     public   void  init()  throws  ServletException  
  8.     {  
  9.         super .init();  
  10.     }  
  11.     Color getRandColor(int  fc, int  bc)  
  12.     {  
  13.         Random random = new  Random();  
  14.         if (fc> 255 ) fc= 255 ;  
  15.         if (bc> 255 ) bc= 255 ;  
  16.         int  r=fc+random.nextInt(bc-fc);  
  17.         int  g=fc+random.nextInt(bc-fc);  
  18.         int  b=fc+random.nextInt(bc-fc);  
  19.         return   new  Color(r,g,b);  
  20.     }  
  21.   
  22.     public   void  service(HttpServletRequest request, HttpServletResponse response)  throws  ServletException, IOException  
  23.     {  
  24.         response.setHeader(“Pragma” , “No-cache” );  
  25.         response.setHeader(“Cache-Control” , “no-cache” );  
  26.         response.setDateHeader(“Expires” 0 );  
  27.         //表明生成的响应是图片   
  28.         response.setContentType(“image/jpeg” );  
  29.           
  30.         int  width= 100 , height= 18 ;  
  31.         BufferedImage image = new  BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
  32.           
  33.         Graphics g = image.getGraphics();  
  34.         Random random = new  Random();  
  35.         g.setColor(getRandColor(200 , 250 ));  
  36.         g.fillRect(1 1 , width- 1 , height- 1 );  
  37.         g.setColor(new  Color( 102 , 102 , 102 ));  
  38.         g.drawRect(0 0 , width- 1 , height- 1 );  
  39.         g.setFont(mFont);  
  40.   
  41.         g.setColor(getRandColor(160 , 200 ));  
  42.   
  43.         //画随机线   
  44.         for  ( int  i= 0 ;i< 155 ;i++)  
  45.         {  
  46.             int  x = random.nextInt(width -  1 );  
  47.             int  y = random.nextInt(height -  1 );  
  48.             int  xl = random.nextInt( 6 ) +  1 ;  
  49.             int  yl = random.nextInt( 12 ) +  1 ;  
  50.             g.drawLine(x,y,x + xl,y + yl);  
  51.         }  
  52.   
  53.         //从另一方向画随机线   
  54.         for  ( int  i =  0 ;i <  70 ;i++)  
  55.         {  
  56.             int  x = random.nextInt(width -  1 );  
  57.             int  y = random.nextInt(height -  1 );  
  58.             int  xl = random.nextInt( 12 ) +  1 ;  
  59.             int  yl = random.nextInt( 6 ) +  1 ;  
  60.             g.drawLine(x,y,x - xl,y - yl);  
  61.         }  
  62.   
  63.         //生成随机数,并将随机数字转换为字母   
  64.         String sRand=“” ;  
  65.         for  ( int  i= 0 ;i< 6 ;i++)  
  66.         {  
  67.             int  itmp = random.nextInt( 26 ) +  65 ;  
  68.             char  ctmp = ( char )itmp;  
  69.             sRand += String.valueOf(ctmp);  
  70.             g.setColor(new  Color( 20 +random.nextInt( 110 ), 20 +random.nextInt( 110 ), 20 +random.nextInt( 110 )));  
  71.             g.drawString(String.valueOf(ctmp),15 *i+ 10 , 16 );  
  72.         }  
  73.   
  74.         HttpSession session = request.getSession(true );  
  75.         session.setAttribute(“rand” ,sRand);  
  76.         g.dispose();  
  77.         ImageIO.write(image, “JPEG” , response.getOutputStream());  
  78.     }  
  79.     public   void  destroy()  
  80.     {  
  81.     }  
  82. }  
分享到:
评论

相关推荐

    java-servlet-api.doc

    JavaServletAPI提供了一个简单的接口,通过这个接口,Servlet引擎可以有效地跟踪用户的会话。 建立Session 因为HTTP是一个请求-响应协议,一个会话在客户机加入之前会被认为是一个新的会话。加入的意思是返回会话...

    利用servlet、jdbc、jsp制作一个简易动漫网站

    4)VIP开通功能:输入购买月数或年数,生成金额 (2)对于系统管理员 管理员具有登录、个人信息管理、视频审核、用户管理功能。 1)登录:通过注册登录进入管理员首页。 2)个人信息管理:修改个人信息,修改密码。...

    健身俱乐部Web网站-JSP+Servlet+Hibernate+jQuery+Ajax

    控制转发层采用Servlet,数据访问层采用Hibernate(bean和dao是由Hibernate逆向工程自动生成)。 系统采用分层架构,由上到下分为视图层、控制转发层、业务层、服务层、数据库访问层。运用了一些基本设计模式,系统...

    java生成登录验证码的方法

    验证码的作用:有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,腾讯的QQ社区),我们利用比较简易的方式...

    Java项目源码之网上购物系统的实现(JavaBean+Servlet+jsp).zip

    网上购物系统是一个基于JavaBean、Servlet和JSP的电子商务平台,旨在提供用户在线购物、订单管理、商品展示等功能。以下是该系统的一些关键特点和功能: 系统架构: MVC架构:系统采用MVC(Model-View-Controller...

    基于BootStrap+JSP+Servlet+Mysql的模拟咖啡厅点餐系统源码+数据库+项目说明.zip

    餐点欢迎度(点餐率)分析,生成图表显示 ### 难点: 1. 环境配置(Tomcat与JDK的版本使用问题,DBCP/C3P0数据库连接池的配置问题) 2. 登录(会话)维持————session/cookies 3. 分页显示————PageModel/...

    JAVA上百实例源码以及开源项目源代码

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

    JAVA 范例大全 光盘 资源

    实例201 Servlet生成的动态图片 658 实例202 简单的JSP上传文件 661 实例203 用Servlet获取Web服务器信息 666 实例204 可选择的图形验证码 670 实例205 简单的页面注册 675 实例206 用Servlet实现分页查看...

    Java_Web开发实战1200例第1卷.part2

    13.8 生成条形码 556 第14章 图像操作 559 14.1 图片的大小 560 14.2 图片与鼠标相关的操作 561 14.3 图片与时间相关的操作 580 14.4 图片的动画效果 589 14.5 选择头像图片 596 14.6 图片的其他效果 599 第15章 ...

    Java_Web开发实战1200例第1卷.part3

    13.8 生成条形码 556 第14章 图像操作 559 14.1 图片的大小 560 14.2 图片与鼠标相关的操作 561 14.3 图片与时间相关的操作 580 14.4 图片的动画效果 589 14.5 选择头像图片 596 14.6 图片的其他效果 599 第15章 ...

    JAVA上百实例源码以及开源项目

    一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码...

    java开源包1

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包11

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包2

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包3

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包6

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包5

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包10

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

Global site tag (gtag.js) - Google Analytics