`
jsnjlc
  • 浏览: 50932 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSP页面的验证码生成及调用方法

    博客分类:
  • Java
阅读更多

首先是要生成验证码:

package  XX.XX

import  java.io. * ;
import  java.util. * ;
import  javax.imageio. * ;
import  java.awt. * ;
import  java.awt.image. * ;

public   class  ImageEnsure  ... {
    
public  ImageEnsure()  ... {
    }


    
private   char  mapTable[]  =   ... { ' 0 ' ' 1 ' ' 2 ' ' 3 ' ,
                              
' 4 ' ' 5 ' ' 6 ' ' 7 ' ' 8 ' ' 9 ' }
;

    
public  String getEnsure( int  width,  int  height, OutputStream os)  ... {

        
if  (width  <=   0 )
            width 
=   60 ;
        
if  (height  <=   0 )
            height 
=   20 ;

        BufferedImage image 
=   new  BufferedImage(width, height,
                                                BufferedImage.TYPE_INT_RGB);

        
//  获取图形上下文
        Graphics g  =  image.getGraphics();

        
//  设定背景色
        g.setColor( new  Color( 0xDCCCCC ));
        g.fillRect(
0 0 , width, height);

        
// 画边框
        g.setColor(Color.black);
        g.drawRect(
0 0 , width  -   1 , height  -   1 );

        
//  取随机产生的认证码
        String strEnsure  =   "" ;

        
//  4代表4位验证码
         for  ( int  i  =   0 ; i  <   4 ++ i)  ... {
            strEnsure 
+=  mapTable[( int ) (mapTable.length  *  Math.random())];
        }


        
//  将认证码显示到图象中
        g.setColor(Color.red);
        g.setFont(
new  Font( " Atlantic Inline " , Font.PLAIN,  14 ));

        
// 画的具体坐标
        String str  =  strEnsure.substring( 0 1 );
        g.drawString(str, 
8 14 );
        str 
=  strEnsure.substring( 1 2 );
        g.drawString(str, 
20 15 );
        str 
=  strEnsure.substring( 2 3 );
        g.drawString(str, 
35 18 );
        str 
=  strEnsure.substring( 3 4 );
        g.drawString(str, 
45 15 );

        
//  释放图形上下文
        g.dispose();

        
try   ... {
            
//  输出图象到页面
            ImageIO.write(image,  " JPEG " , os);
        }
  catch  (IOException e)  ... {
            
return   "" ;
        }


        
return  strEnsure;
    }

}

然后是调用,可以在页面调用,也可以在servlet中调用,我推荐是单独的一个servlet调用,在页面调用可能会出现异常,但是不影响使用。在servlet中写上如下的代码:

         // 禁用缓存,每次访问此页面,都重新生成
        response.setHeader( " Pragma " , " No-cache " ); 
        response.setHeader(
" Cache-Control " , " no-cache " ); 
        response.setDateHeader(
" Expires " 0 ); 

        
// 生成验证码的实例对象
        ImageEnsure ie  =   new  ImageEnsure();

        
// 调用里面的方法,返回的是生成的验证码中的字符串
        String str  =  ie.getEnsure( 0 , 0 ,response.getOutputStream());

        
// 获得session,并把字符串保存在session中,为后面的对比做基础
        HttpSession session  =  request.getSession();
        session.setAttribute(
" strEnsure " , str);

然后把servlet内嵌到具体的网页中,具体嵌入就是用DreamWeaver在需要插入验证码的地方插入图像,地址就指向此servlet即可。
输入验证码并提交后,在新的页面中可以按如下方法判断:

 

   < body >
  
<%
  
// session的默认存在时间为20分钟,如果20分钟不输入验证码,session将会消失,因此要做下判断
   if (session.getAttribute( " strEnsure " ) == null )
  
... {
      
%>
      
< jsp:forward page = " ImageErr.jsp " />
      
<%
  }
else ... {
  
// 获取在session中保存的生成验证码的数字
  String ensure  =  (String)session.getAttribute( " strEnsure " );

  
// 获取在页面的表单中输入的验证码
  String code  =  request.getParameter( " txtimage " );

  
// 判断输入的验证码,跟保存的生成的验证码是否一样
   if (ensure.equals(code)  &&  code  !=   null )
  
... {
    
%>
    
< jsp:forward page = " searchword?method=add " />
    
<%
    }
else ... {
      
%>
      
< jsp:forward page = " ImageErr.jsp " />
      
<%
    }

  }

      
%>
 
</ body >
分享到:
评论

相关推荐

    利用jsp生成图片验证码

    这里,`generateRandomCode()`和`createAndDrawCaptcha(String)`是自定义的方法,分别实现了验证码生成和图片绘制的逻辑。 总之,通过JSP生成图片验证码虽然可能不如使用Servlet直接控制HTTP响应那么灵活,但仍然...

    验证码生成jsp 代码

    压缩包中的"验证码生成"文件可能包含了实现上述步骤的JSP代码示例。通过查看和学习这个示例,你可以了解到如何在实际项目中生成和使用验证码。为了深入理解,你需要了解JSP语法、Java图像处理以及HTTP会话管理等相关...

    jsp验证码生成以及刷新

    jsp 验证码生成和刷新详解 jsp 验证码生成和刷新是 Web 开发中非常重要的一部分。验证码的生成和刷新可以防止机器人攻击和恶意注册。下面我们将详细介绍 jsp 验证码生成和刷新的过程。 一、四位数据的验证图片生成...

    验证码+配置文件+jsp页面调用

    然后,在JSP页面中使用`&lt;jsp:include&gt;`标签将验证码生成的Servlet包含进来,例如: ```jsp // 创建CaptchaGenerator实例 CaptchaGenerator captcha = new CaptchaGenerator(); // 生成验证码 String code = ...

    【分享】JSP语音验证码接口demo

    - **开发步骤**:首先,创建JSP页面,定义请求处理逻辑,如接收到请求后调用API发送语音验证码;然后,处理用户的验证请求,比较输入的验证码与生成的验证码是否一致。 - **调试与测试**:通过模拟用户请求,检查...

    生成验证码图片的jsp代码

    在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...

    jsp+servlet编写的验证码程序

    jsp+servlet编写的验证码程序是一种基于Java EE的验证码生成程序,使用jsp和servlet技术来生成验证码。在本节中,我们将详elerate这个程序的结构和实现细节。 一、项目结构 项目结构如图1所示,包名为...

    jsp页面最简单的验证码

    验证码生成(yzm_string.jsp) - **页面配置**:设置页面内容类型为`image/jpeg`,表示返回的是JPEG格式的图像。 - **色彩生成**:定义了一个方法`getRandColor(int fc, int bc)`用于生成随机颜色。 - **图像绘制**...

    JSP生成验证码图片

    ### JSP生成验证码图片:深度解析与实现细节 在当今的网络应用中,验证码作为一种防止自动化工具滥用的有效手段,被广泛应用于用户登录、表单提交等场景中。本文将深入探讨如何利用Java Server Pages(JSP)技术...

    java完美的验证码生成

    本教程将详细讲解如何在Java环境下实现一个完美的、可定制的验证码生成系统。 首先,验证码的基本原理是生成一串随机字符串,并将其与图像结合,用户在看到图像后需输入对应的字符串,服务器端会验证用户输入的字符...

    Jsp-图片验证码及刷新

    为了实现验证码的刷新功能,可以在JSP页面中使用Servlet来动态生成验证码图片。Servlet接收请求,生成验证码文本(存储在session中),然后创建并返回验证码图片。JSP页面通过AJAX请求刷新Servlet,每次请求都会得到...

    JSP 验证码 字母 数字

    ### JSP验证码生成 #### 1. 基本概念 验证码是一种防止自动化软件攻击的安全机制,常用于用户登录、表单提交等场景。JSP(Java Server Pages)是一种基于Java的技术,用于创建动态网页。在JSP中生成验证码通常涉及...

    JSP生成验证码

    #### 二、验证码生成流程 验证码的生成与验证通常分为三个步骤: 1. **生成验证码图像**:通过服务器端动态生成包含随机字符串的图像。 2. **存储验证码值**:将生成的验证码值存储在Session中。 3. **验证用户...

    实验五 AJAX开发及JSP验证码

    实验五主要涵盖了AJAX技术的运用以及JSP验证码的开发,这两个知识点对于前端开发者来说是至关重要的。AJAX,即Asynchronous JavaScript and XML(异步JavaScript和XML),它允许网页在不重新加载整个页面的情况下与...

    JSP页面实现验证码功能

    4. **JSP页面展示**:在JSP页面中,我们将调用上述方法生成验证码图像,并将其显示在页面上。同时,需要创建一个表单供用户输入验证码。 5. **处理表单提交**:当用户提交表单时,我们通过Servlet或JSP的内置对象`...

    生成jsp验证码,很好用

    在IT行业中,验证码...总的来说,通过导入一个简单的Java文件并集成到JSP项目中,我们可以快速地实现一个功能齐全的验证码生成器,从而提高网站的安全性。这种方法简单易行,对于初学者来说也是一个很好的实践项目。

    jsp 生成验证码代码

    知识点三:验证码生成的关键步骤 1. 设置页面属性:通过设置response对象的相关头信息来防止页面缓存,确保每次请求都生成新的验证码。 2. 创建图形环境:在内存中创建BufferedImage对象,这是生成验证码图像的基础...

    jsp使用net.js实现验证码验证例子

    在本示例中,由于已经使用了net.js封装好的js实现,开发者无需关心具体的验证码生成逻辑,只需调用提供的API即可。这大大简化了开发流程,提高了开发效率。 运行例子时,你需要确保已经正确安装了net.js库,并且...

    JSP图形验证码的界面

    尽管它相对简单,但对于小型项目或者学习JSP验证码实现是一个很好的起点。开发者可以根据自己的需求,比如添加更复杂的图像变形,或者引入语音验证码等,以提高安全性。同时,对于实际生产环境,可能还需要考虑对...

    漂亮验证码(jsp版)

    在这个案例中,JSP用于生成验证码图像。通常,JSP页面会包含一段Java代码,该代码创建随机字符序列,并用特定的字体、颜色和背景噪声来渲染,生成具有视觉混淆效果的图片。 `Servlet`则是在服务器端运行的Java程序...

Global site tag (gtag.js) - Google Analytics