jsp动态生成验证码详细代码

思路:页面加载时执行fnGetcode()方法,获取验证码所有信息;点击“点击图片更换” 再次执行fnGetcode()方法;

1):<body >

<label>
         验证码:
         <input id="showco" type="hidden" value=""/>
         <input type="text" id="code" name="code" class="input-text" id="yzmText"
          onfocus="var offset = $(this).offset();$(‘#yzm‘).css({‘left‘: +offset.left-8, ‘top‘: +offset.top-$(‘#yzm‘).height()});$(‘#yzm‘).show();$(‘#yzmText‘).data(‘hide‘, 1)"
          />
        </label>
        <div id="yzm" class="yzm">
         
         <img id=‘checkcode‘ onclick=‘fnGetcode();‘
          src=‘‘>
         
         <br />
         <a href="JavaScript:fnGetcode();">
         点击图片更换
         </a>
        </div>

<script type="text/javascript">
  //获得验证码
  function fnGetcode(){
  
   $.post("<%=basePath%>getCode.jsp", null, function(data) {
      var data = eval(‘(‘ + data + ‘)‘);
       //$.messager.alert("验证码", data.code);
       document.getElementById("checkcode").src="yanzhengma.jsp?r="+data.code;
       $("#showco").val(data.code);
      
   });
  
  }

</script>

</body>

2):yanzhengma.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.awt.image.BufferedImage"%> <%@page import="java.awt.Graphics"%> <%@page import="java.awt.Color"%> <%@page import="java.awt.Font"%> <%@page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%> <%@page import="com.sun.image.codec.jpeg.JPEGCodec"%> <%@page import="com.db.DBquery"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>     <base href="<%=basePath%>">         <title>验证码</title>       </head>     <body>     <h3>在jsp页面生成验证码</h3> <hr/> <%  out.clear();  out = pageContext.pushBody();

String code=request.getParameter("r");     int width=400, height=33;//图片的大小(宽和高)   //构架画布,第一个参数表示画布的宽,第二个参数表示画布的高,第三个参数的含义有待确定   BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   Graphics g = image.getGraphics();//实例化画图对象   //以下设置背景色   g.setColor(Color.pink);    /*下面两行是定义字体和将字体设置到画布中   第一个参数表示字体,第二个参数表示文本的样式(如:粗体,斜体等),第三个参数表示文字的大小*/   Font DeFont=new Font("楷字", Font.PLAIN, 35);   g.setFont(DeFont);   //将已经设置好的背景颜色填充到指定的画布区域   g.fillRect(0,0, width, height);   //置字体色   g.setColor(Color.blue);     //在画布上输出文字信息,第一个参数表示要显示的文字,第二和第三个参数表示起始点的X、Y坐标   g.drawString(code,90,30);   g.dispose();   ServletOutputStream outStream = response.getOutputStream();   JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);   encoder.encode(image);   outStream.close(); %>   </body> </html>

3):getCode.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.awt.image.BufferedImage"%> <%@page import="java.awt.Graphics"%> <%@page import="java.awt.Color"%> <%@page import="java.awt.Font"%> <%@page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%> <%@page import="com.sun.image.codec.jpeg.JPEGCodec"%> <%@page import="com.db.DBquery"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

//获取四位数字  String code=DBquery.generateWord();  //System.out.println(code);  // 将认证码存入SESSION  session=request.getSession();     session.setAttribute("sysValidation",code);     //System.out.println("sesscode:"+session.getAttribute("sysValidation"));  String returnString="{\"code\":‘"+code+"‘}";  response.getWriter().write(returnString);     %>

时间: 2024-10-27 13:57:11

jsp动态生成验证码详细代码的相关文章

JSP动态生成验证码

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

asp.net一般处理程序(.ashx)动态生成验证码案例。

{使用一般处理程序动态生成验证码} 1.新建WebSite项目,添加一般处理程序命名为  yzm.ashx,添加如下代码: public void ProcessRequest(HttpContext context)    {   //将context.Response.ContentType = "text/plain";修改为context.Response.ContentType = "image/JPEG";        context.Response

PHP 动态生成验证码

……机器人会在网站中搜寻允许他们插入广告的输入表单,在虚拟世界没有什么能阻挡它们胡作非为.这些机器人效率极高,完全不关心所攻击的表单的本来用途.它们唯一的目标就是用它们的垃圾广告覆盖你的内容,残忍地为它们的主人谋取广告收入. 要检验一个表单所面对的是一个真正的人,这种测试称为CAPTCHA(完全自动化公共图灵测试).目前最有效的方法是生成一个要求用户输入的随机通行短语,为了防止支持OCR(光学字符识别)的机器人破解系统,通行短语字母必须变形,或者用随机的直线和点进行部分模糊处理. /* 生成验证

JSP+servlet生成验证码并验证

生成验证码的基本过程是: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="java.awt.*,java.awt.image.BufferedImage,javax.imageio.ImageIO" %> <% response.setHeader("Cache-C

JSP动态生成XML、json例子

动态生成Xml例子 jsp文件: <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"> <jsp:directive.page import="java.text.*" /> <jsp:directive.page import="java.lang.*" /> <jsp:directive.page con

转 一个简单实用的 生成验证码的 代码

1 using System; 2 using System.Collections.Generic; 3 using System.Drawing; 4 using System.Drawing.Drawing2D; 5 using System.Drawing.Imaging; 6 using System.IO; 7 using System.Linq; 8 using System.Web; 9 10 11 public class ValidateCode 12 { 13 public

动态生成验证码

知识点: 1. 对图像的操作 问题: 解决方案 1 <%@ WebHandler Language="C#" Class="ValidateCode" %> 2 3 using System; 4 using System.Web; 5 using System.Drawing; 6 using System.IO; 7 8 public class ValidateCode : IHttpHandler { 9 10 public void Proce

生成验证码的代码

页面的点击事件: package action; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; imp

Jsp动态生成表格

输入行列: <body> <form action="Train2ResultJsp.jsp"> row:<input type="text" name="row"><br> column:<input type="text" name="column"><br> <input type="submit" va