JSP验证码简单生成方法

本文实例讲述了JSP验证码简单生成方法。分享给大家供大家参考。具体如下:

<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
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);
    }
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
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));
//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生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位数字)
//String rand = request.getParameter("rand");
//rand = rand.substring(0,rand.indexOf("."));
String sRand="";
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);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>

希望本文所述对大家的JSP程序设计有所帮助。

(0)

相关推荐

  • jsp引用servlet生成的验证码代码演示

    此演示代码主要包括以下三部分:1.checkCode.java:用于生成验证码2.checkCodeServler3.check.jsp 验证 下面是checkCode.java的内容: 复制代码 代码如下: //用于获取四位随机数     private char mapTable[] = {'0','1','2','3','4','5','6','7','8','9'}; //生成验证码,并返回随机生成的数字     public String getEnsure(int width, in

  • 实现jsp验证码的简单小例子

    复制代码 代码如下: <%@ page language="java" pageEncoding="gbk"%><%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %><%!Color getRandColor(int fc,int bc){//给定范围

  • JSP实现简单的用户登录并显示出用户信息的方法

    本文实例讲述了JSP实现简单的用户登录并显示出用户信息的方法.分享给大家供大家参考.具体实现方法如下: login.jsp 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  <%  String path = request.getContextPath();  String basePath = request.

  • JSP实现登录功能之添加验证码

    jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码 part_1:专门用于生成一个验证码图片的类:VerificationCode.Java package cn.mike.javase.test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.i

  • jsp 生成验证码代码

    调用方法:在jsp页面用图像标签便可以直接调用如下是标签代码<img border=0 src="image.jsp">,只需要把该代码发在验证码要显示的区域就可以了) <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> <%! public static Strin

  • JBuilder2005实战JSP之登录页面实现代码[图]

    通过File->New...->Web->双击JSP图标,弹出创建JSP向导的对话框,如下图所示: 图 3 通过向导创建login.jsp ·Web module:如果一个工程下有多个Web模块,你可以通过这儿指定JSP所要加入到的Web模块,因为我们的工程中只有一个webModule,所以是向导将默认设置为webModule. ·Name :键入JSP文件名,你可以键入.jsp后缀,也可以不写后缀,直接键入login就可以了. Generate sample bean选项勾选后JBui

  • java(jsp)整合discuz同步登录功能详解

    最近做了一个资源库系统的项目,老师说可以搭建开源论坛替代自己开发社交模块,正好在开源中国上看到了一个利用discuz的UCenter功能实现同步登录的开源项目(https://code.google.com/p/discuz-ucenter-api-for-java/),不禁大喜,于是花了几个小时照着教程操作了一遍,居然很轻松的成功了,特写此文以做纪念.. Uenter是Comsenz旗下各个产品之间信息直接传递的一个桥梁,通过UCenter站长可以无缝整合Comsenz系列产品,实现用户的一站

  • Jsp生成页面验证码的方法[附代码]

    image.jsp------------------------------生成随机验证码图片的Jsp页面 代码如下:  复制代码 代码如下: <%@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(int fc,int bc) { Random ran

  • JSP验证码简单生成方法

    本文实例讲述了JSP验证码简单生成方法.分享给大家供大家参考.具体如下: <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(int fc,int bc){//给定范围获得随机颜色 Random random = new Random(); if(fc&

  • JSP验证码动态生成方法

    在登录应用中,为防止恶意登录,常常需要服务器动态生成验证码并存储在session作用范围中,最后以图像形式返回给客户端显示 下边的代码实现的功能:写一个JSP页,动态生成一个验证码,存储在session作用范围内,并以图像形式返回给客户端显示. 另写一个JSP页面,引用此JSP页面生成的验证码: authen.jsp代码如下: <%@ page import="java.awt.*,java.awt.image.*,java.util.*,com.sun.image.codec.jpeg.

  • 详解ASP.NET验证码的生成方法

    一般验证码的生成方法都是相同的,主要的步骤都有两步 第一步:随机出一系统验证码的数字或字母,顺便把随机生成的数字或字母写入Cookies 或者 Session. 第二步:用第一步随机出来的数字或字母来合成图片. 可以看出来验证码的复杂度主要是第二步来完成,你可以根据自己所要的复杂度来设定. 我们一起来看看:  第一步:随机生成数字或字母的方法 /// <summary> /// 生成验证码的随机数 /// </summary> /// <returns>返回五位随机数&

  • jsp倒计时简单实现方法

    本文实例讲述了jsp倒计时简单实现方法.分享给大家供大家参考,具体如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% //当前时间毫秒数 Long current_time1=System.currentTimeMillis(); //结束时间毫秒数 Long end_time2=1337875200000l; //计算时间差 L

  • asp.net简单生成验证码的方法

    本文实例讲述了asp.net简单生成验证码的方法.分享给大家供大家参考,具体如下: 1.新建一个一般处理程序 namespace WebApplication1 { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfil

  • jsp实现简单验证码的方法

    本文实例讲述了jsp实现简单验证码的方法.分享给大家供大家参考.具体如下: 这里只有一个文件,可以在<img />的src属性里直接调用显示,适用于各种项目的表单安全验证 jsp页面代码: <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(

  • jsp实现简单图片验证码功能

    本文实例为大家分享了jsp实现简单图片验证码的具体代码,供大家参考,具体内容如下 一.实现的功能分析 (1)在登陆页面加验证码的功能,起到一定的安全性.在输入正确的验证码,用户名和密码的情况下,才可以实现登录.(2)实现查询数据库的功能.在登陆后的页面中,显示用户名和密码,并且设置有一个超链接,实现查询数据库的功能.(3)代码核心是:随机生成验证码,并且显示在页面上.同时要和输入框中的输入验证码进行校验.(4)主页面使用img标签的src属性引入验证页面的jsp文件.(5)验证码的实现页面使用B

  • php简单生成随机数的方法

    本文实例讲述了php简单生成随机数的方法.分享给大家供大家参考.具体如下: <?php /** *生成随机数,可用户验证码 *@param */ function randStr($m = 5) { $new_str = ''; $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwsyz0123456789'; $max=strlen($str)-1; for ($i = 1; $i <= $m; ++$i) { $new_str

  • thinkPHP中验证码的简单使用方法

    本文实例讲述了thinkPHP中验证码的简单使用方法.分享给大家供大家参考,具体如下: 首先生成验证码,在action文件中,直接调用thinkphp中提供的方法即可生成,确保开启php的扩展 gd2 如下: class UserAction Model extends Model { /** * 显示验证码信息 */ public function verify() { ob_clean(); // 清空(擦掉)输出缓冲区 ,也就是清空前面的输出,通常情况下验证码不显示,可考虑这个问题 imp

  • thinkPHP中验证码的简单实现方法

    本文实例讲述了thinkPHP中验证码的简单实现方法.分享给大家供大家参考,具体如下: 运行效果图如下: 1.php端生成验证码函数 public function verify(){ // 验证码 import("@.Util.Image"); Image::buildImageVerify(4,1,'png',40,20,'verify'); } /** * 生成图像验证码 * @static * @access public * @param string $length 位数

随机推荐