jsp+ajax局部刷新校验验证码,onblur触发校验

图形验证码(jsp实现) 立即下载

前台显示页面:

welcome.jsp

<%@ page language="java" contentType="text/html; utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>修改个人信息</title>
<script>


function createXMLHttpRequest() {
    //表示当前浏览器不是ie,如ns,firefox
    if(window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}
function validate(field) {
 var div=document.getElementById("divbid");
// var reg=/[^A-Za-z0-9_]{7,10}/g;
    if (field.value.length != 0) {


       //创建XMLHttpRequest
        createXMLHttpRequest();
        var url = "codevalidate.jsp?authcode=" + field.value + "×tamp=" + new Date().getTime();//加时间戳防止缓存重复
        xmlHttp.open("GET", url, true);
        //方法地址,处理完成后自动调用,回调
        xmlHttp.onreadystatechange=function() { //匿名函数
            if(xmlHttp.readyState == 4) { //Ajax引擎初始化成功
                if (xmlHttp.status == 200) { //http协议成功
                    document.getElementById("divbid").innerHTML =xmlHttp.responseText;
                }else {
                    alert("请求失败,错误码=" + xmlHttp.status);
                }
            }
        };
        //将参数发送到Ajax引擎
        xmlHttp.send(null);




    }else {

          div.innerHTML="<div  class=\"wrong\">验证码不能为空</div>"
    }
}

function reloadImage(imgurl){

    var getimagecode=document.getElementById("codeimg");
    getimagecode.src= imgurl + "?id=" + Math.random();
      var code=<%=session.getAttribute("code")%>;
      alert(code)
}
</script>

</head>
<body>

<form action="authcode.jsp" method="post" name="loginform">

      输入验证码:<input type="text" name="authcode" id="authcode" maxlength="4" size="10" onblur="validate(this)" ><span id="divbid"></span>
      <img id="codeimg" name="codeimg" border=0 src="authcode.jsp">
      <a href="javascript:reloadImage('authcode.jsp')">看不清</a><br/>

  </form> 

  <script language="javascript" type="text/javascript">
      function reloadImage(imgurl){

          var getimagecode=document.getElementById("codeimg");
          getimagecode.src= imgurl + "?id=" + Math.random();
          var code=<%=session.getAttribute("code")%>;
          alert(code)
      }
  </script>
  </body>
  </html>

产生图片页面

authcode.jsp

<%@ page contentType="image/JPEG"  
    import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"  
    pageEncoding="GBK"%>
<%!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 < 100; 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 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);   
        System.out.println(rand);
    }   

    // 将认证码存入SESSION   
    session.setAttribute("code", sRand);   

    // 图象生效   
    g.dispose();   

    // 输出图象到页面   
    ImageIO.write(image, "JPEG", response.getOutputStream());   
%>

ajax动态验证页面

codevalidate.jsp

<%@ page language="java" import="java.util.*,java.util.*,java.text.*,com.neusoft.xkxt.dao.*,com.neusoft.xkxt.bean.*,com.neusoft.xkxt.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%

   String authcode=request.getParameter("authcode");
   String code=(String)session.getAttribute("code");



   if(authcode.equals(code)){
   out.println("<div class='right'>√</div>");}

   else{
   out.println("<div class='wrong'>验证码不正确</div>");}

 %>
WblockCloneObjects克隆一个图纸内的实体包括块参照,同名块参照的处理 public static void HeBingTu2(double lieJu, List<string> filePaths) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; using (DocumentLock docLock = doc.Lock... 阅读详情

相关推荐

xsens IMU配置

1.安装驱动 sudo apt-get update sudo apt-get install ros-kinetic-xsens-driver 2.配置IMU 设置输出四元数,加速度、角速度、地磁 cd /opt/ros/kinetic/lib/xsens_driver python mtdevice.py --configure "oq,aa,wr,mf" 3.启动IMU roslaunch xsens_driver xsens_driver.launch 转(https://www.cnblo

qq_41585680的博客 2325

JSP页面实现验证码校验

验证码的生成实际就是输出一个图像,所以在这里使用ImageIO来生成图片,然后结合使用随机数(Random)来实现随机生成验证上的内容,最后进而展示出来,然后利用Session对象存储验证码的内容。在用户输入验证码的时候可以用request来获取用户输入的内容,让其余Session对象中保存的验证码内容进行比较,若一致则验证成功,不一致就验证失败。在网页页面的使用中为防止“非人类”的大量操作和防止一些的信息冗余,增加验证码校验是许多网站常用的方式。组合的验证码是最经典也是最常用的方式。

lkl2017的博客 5594

保姆级教程:用CANoe的LIN Slave Conformance Tester搞定一致性测试(附LDF配置避坑点)

本文详细介绍了如何使用CANoe的LIN Slave Conformance Tester进行汽车电子LIN从节点一致性测试,包括测试环境搭建、LDF文件配置、多通道测试技巧及常见问题解决方案。通过实战案例和高级配置技巧,帮助工程师高效完成测试任务,确保LIN总线通信的可靠性。

weixin_30385925的博客 528

JavaScript中的onblur(失去焦点)应用

提示:onblur 相反事件为 onfocus 事件。ondblclick— 鼠标左键双击事件。onmouseover— 鼠标移入事件。onmouseout-- 鼠标移出事件。onmousemove— 鼠标移动事件。onmousedown— 鼠标按下事件。oninput---- 内容改变事件。onclick— 鼠标左键单击事件。onmouseup— 鼠标抬起事件。onkeydown— 键盘按下事件。onchange— 内容改变事件。onkeyup— 键盘抬起事件。onblur— 失去焦点事件。

qiuqiule6的博客 6546

Windows平台MuJoCo仿真环境配置与Qt集成实战

本文详细介绍了在Windows平台上配置MuJoCo物理仿真环境并与Qt框架集成的完整实战流程。内容涵盖从环境准备、库文件配置、项目创建到核心代码编写的每一步,重点解决了Windows下常见的编译链接错误和路径问题,帮助开发者在Windows系统中高效搭建机器人仿真与可视化控制开发环境。

weixin_29221753的博客 173

AI基础入门(大模型基础篇)——技术视角:你应该知道的LLM基础知识

本文从技术视角解析了大模型的工作原理,主要介绍了三个核心概念:Token、温度和Embedding。首先,大模型通过逐个添加Token来生成文本,Token数量直接影响上下文窗口大小和计费标准。其次,通过引入温度参数控制随机性,温度越高输出越多样化。最后,解释了字符串如何通过One-Hot编码和神经网络压缩转化为向量形式的Embedding,这是AI处理各类输入的基础。这些概念对理解大模型应用开发至关重要,Token决定处理能力,温度影响输出风格,Embedding则是信息转换的关键步骤。

小志的博客 1507

Jsp中onBlur事件在引入jqury后提示函数失效

Jsp中onBlur事件在引入jqury后提示函数失效 onBlur事件 onblur 事件会在对象失去焦点时发生。 语法 οnblur=“SomeJavaScriptCode” 参数描述 SomeJavaScriptCode 必需。规定该事件发生时执行的 JavaScript。 问题 正常情况下onBlur事件绑定一个js函数是没有问题的,但是在js中引入jQuery后就会失效,提示:Uncau...

wxs47820的博客 1123

MIT液态神经网络(LNN)深度研究:原理、应用与未来

液态神经网络(Liquid Neural Networks, LNNs)代表了人工智能领域,特别是神经网络架构设计中的一次范式转移。它从根本上挑战了传统深度学习模型依赖大规模参数和静态架构的惯例,转而寻求一种更为动态、高效且受生物神经系统启发的计算范式。LNN的核心创新在于其将神经网络的计算过程从离散的、基于时间步的更新,转变为连续的、由微分方程驱动的动态系统演化。这种转变不仅赋予了模型前所未有的适应性和鲁棒性,还使其在处理复杂的时序数据和因果推断任务时表现出色。本章节将深入剖析LNN的技术原理,从其核心的

步子哥的博客 2590

jsp的<input>标签onblur失去焦点事件失效问题

用IDEA执行 问题原因:因为我的这部分代码是copy来的,所以碰到一个特别坑的问题 注意这个onblur,可能因为我的主题是暗色的,所以这个高亮不是很明显 当我们把鼠标移到这里时,会发现Attribute οnblur is not allowed here的提示,这就是问题所在了,应该是idea自己的问题,按照提示 Alt+Shift+Enter,问题解决...

VictorTinyEvil的博客 2400

MATLAB - Gazebo 联合仿真 —— 使用 UR10 机械臂检测和采摘水果

本示例演示如何在 Gazebo 物理模拟器中设置 Universal Robotics UR10 机械臂和仿真环境。您需要配置一个机器人从树上摘苹果的仿真环境。本示例演示如何利用这些工具箱,使用 Universal Robotics UR10 机械手模拟机器人检测并从树上摘取苹果。Robotics System Toolbox™ - 在 Simulink® 和 Gazebo 中对机械手进行建模、规划和模拟。Navigation Toolbox™ - 生成三维环境的占用图。

机器人控制与仿真应用 4184

【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏 2. ARMv8/v9 CPU/Cache 专栏 3. Linux ARM AMBA 总线 专栏 4. Trace32/DS-5 专栏。。。

CodingCos的博客 8245

javascript 中的onblur 事件

最开始的情况是这样的,在我们看一个电视镜头时,画面上有两个人,一远一近,如果远处的人在说话,我们将镜头位伸,焦点在远处的人身人,而近处的人就模糊了,而拉近时,近处的人会清晰,远处的人处于失焦的情况下就会模糊。 这个与网页中的情况很象的,一个网页中只有一个焦点,这个焦点到一个对象上去,那么其余的对象都是在失焦的状况下的。所以人家使用了onblur作为事件从焦点转移的事件是没有错的。 我想这个对象

k_1991的专栏 3574

PyTorch深度学习实战(25)——从零开始实现Mask R-CNN实例分割

Mask R-CNN 是一种在目标检测任务中引入了语义分割的强大框架,通过在 Faster R-CNN 基础上进行扩展,添加了额外的分支网络,不仅可以准确地检测对象的位置和类别,还可以生成每个实例的精确像素级别的语义分割掩码。其模块化的设计可以轻松地应用于不同的任务和数据集,并且可以通过添加更多的分支进行功能扩展,如实例关键点检测等。

盼小辉丶的博客 1万+

AJAX实现验证码区的局部刷新(初学AJAX小结)

AJAX实现验证码区的局部刷新(初学AJAX小结)  AjaxServlet浏览器IEWeb               AJAX不是一种新技术,而是6种web技术的综合体。          不废话了,进入正题“验证码局部刷新”!          此测试需要3个文件:                   文件1:产生验证码图片的Servlet                 

码农橙子Yang 1546

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JSP输入框空验证:利用onblur标签实现的移动鼠标时的验证

&lt;%@page language="java"import="java.util.*"pageEncoding="UTF-8"%&gt; &lt;% String path = request.getContextPath(); String basePath = request.getScheme() +"://" + request.g...

数据库 615

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

李炎辉视频0.7 验证码制作--验证码局部刷新

一、验证码       做验证码之前先看一看要用到的函数。              mt_rand()      生成随机数 mt_rand — 生成更好的随机数 int mt_rand ( int $min , int $max ) 返回 min (或者 0) 到 max (或者是到 mt_getrandmax() ,包含这个值)之间的随机整数...

任重道远 314

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

阿里云三要素校验接口避坑指南:从授权码申请到错误码处理全流程

本文详细解析阿里云三要素校验接口的全流程避坑指南,涵盖授权码申请、加密策略选择、错误码处理及成本优化等关键环节。针对姓名、手机号等敏感数据提供专业预处理方案,帮助开发者有效规避常见技术陷阱,提升接口调用成功率和合规性。

weixin_30628077的博客 465

javaweb验证码实现(jsp)

首先放上javaweb的目录结构: 生成验证码的jsp文件【validate.jsp】 <%@ page language="java" import ="java.awt.*" import ="java.awt.image.BufferedImage" import ="java.util.*" import ="javax.imageio.ImageIO"

秦怀杂货店 2937

JSP验证码与session不一致处理方法

今天在调试项目的时候发现,在提交表单的时候的验证码有问题,问题是这样的:就是通过debug模式查看得知:jsp页面生成的验证码和表单输入的页面输入的一样,但是到后台执行的时候,你会发现他们是不一样的,现在上图看看: 1.这是表单提交的时候: 2.这是后台得到的生成的验证码: 3.这是后台得到输入的验证码: 这样的问

ilvest的博客 2346

jsp登录验证码功能实现

1.login.jsp:关键代码如下 /* 验证码*/ function change(){ var img= document.getElementById("checkImage"); img.src="checkImgAction?"+new Date().getTime();//防止缓存加上new Date }   验证码:  

工欲善其事必先利其器 1万+

jquery+jsp+servlet+ajax实现注册功能,ajax校验用户名、验证码等(转自他人)

具体见:http://m.blog.youkuaiyun.com/Damionew/article/details/73048150

feifei318的博客 2903

Servlet+jsp实现登录验证校验

案例:Servlet+jsp实现登录验证校验 案例需求: 访问带有验证码的登录页面login.jsp 用户输入用户名,密码以及验证码。 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 如果验证码输入有误,跳转登录页面,提示:验证码错误 如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您 分析: 登录界面设计; login.jsp ...

qq_38454176的博客 3114

Jsp 验证码(检验码)的实现

利用Apache的一个 开源项目Image Tag Library(http://jakarta.apache.org/taglibs/sandbox/doc/image-doc/intro.html)下载必要文件1)下载Jakarta-Taglibs:  http://people.apache.org/builds/jakarta-taglibs-sandbox/nightly/  解

CenturyMagus的专栏 1633

手机验证码前台jsp校验

验证手机号的正则表达式 手机号: $("#huoquYanzhengma").click(function(){ if($("#phone").val()==""||$("#phone").val()==null){ $("#tishi").show();

jovi_zhao的博客 2419

jsp中四种验证码的实现

JSP中各种验证码的实现 1.数字验证码 2.英文+数字验证码 3.中文验证码 4.表达式验证码 在如下的登录页面中可以应用以上四种不同的验证码,分别使用如下四个代码,作为image.jsp的代码即可。 0.原始登录页面代码 &lt;%@ page contentType="text/html;charset=gb2312"%&gt; &lt;%@ page language=...

小怪兽的博客 2888

大数据Spark(八十五):Stage及Spark计算模式

本文详解Spark中Stage的划分机制与Pipeline计算模式。Stage依据RDD宽依赖(Shuffle)划分为ShuffleMapStage和ResultStage,同一Stage内通过迭代器串联多个RDD,实现数据内存流转,减少落盘开销,提升效率。并行度由最后一步RDD的分区数决定,可通过Shuffle算子调优。结合SparkUI可直观分析性能瓶颈,是优化作业的关键基础。

Lansonli(蓝深李)的博客 795
上一篇: java-初学
下一篇: Spring Bean配置:注解配置
Runnner_
博客等级 码龄11年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值