实现同步加载验证码和用户名是否存在的判断通过Ajax

AJAX与JSP结合的无刷新验证码实现示例 AJAX(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过AJAX,Web页面可以进行异步数据交换,这意味着在不需要重新加载整个页面的情况下,可以更新网页的部分内容。AJAX的核心是XMLHttpRequest对象,它允许JavaScript向服务器提出请求,并处理服务器响应,而用户无需离开当前页面。工作原理可以细分为以下几个步骤:当用户在网页上进行某些操作时,如点击按钮,JavaScript会创建一个XMLHttpRequest对象。 阅读详情

1.验证码工具类

package com.syh.utils;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class ValidateCodeServlet extends HttpServlet {
	
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		createCode(request);
		write(response.getOutputStream());
	}
	
    // 图片的宽度
    private int width = 160;
    // 图片的高度
    private int height = 28;
    // 要输入验证码的数量
    private int codeCount = 4;
    // 验证码上面的模糊线
    private int lineCount = 150;
    // 验证码,要和用户输入的对比
    private String code = null;

    private BufferedImage buffImg = null;

    private char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R',
            'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9' };


    public void createCode(HttpServletRequest request) {
        int x = 0, fontHeight = 0, codeY = 0;
        int red = 0, green = 0, blue = 0;

        x = width / (codeCount + 2);
        fontHeight = height - 2;
        codeY = height - 4;

        buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = buffImg.createGraphics();
        Random random = new Random();
        g.setColor(Color.WHITE);
        g.fillRect(0, 0, width, height);
        Font font = new Font("Fixedsys", Font.BOLD, fontHeight);
        g.setFont(font);
        for (int i = 0; i < lineCount; i++) {
            int xs = random.nextInt(width);
            int ys = random.nextInt(height);
            int xe = xs + random.nextInt(width / 8);
            int ye = ys + random.nextInt(height / 8);
            red = random.nextInt(255);
            green = random.nextInt(255);
            blue = random.nextInt(255);
            g.setColor(new Color(red, green, blue));
            g.drawLine(xs, ys, xe, ye);
        }

        StringBuffer randomCode = new StringBuffer();
        for (int i = 0; i < codeCount; i++) {
            String strRand = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);
            red = random.nextInt(255);
            green = random.nextInt(255);
            blue = random.nextInt(255);
            g.setColor(new Color(red, green, blue));
            g.drawString(strRand, (i + 1) * x, codeY);
            randomCode.append(strRand);
        }

        code = randomCode.toString();
        HttpSession session = request.getSession();
        session.setAttribute("code", code);
    }

    public void write(String path) throws IOException {
        OutputStream sos = new FileOutputStream(path);
        this.write(sos);
    }

    public void write(OutputStream sos) throws IOException {
        ImageIO.write(buffImg, "png", sos);
        sos.close();
    }

    public BufferedImage getBuffImg() {
        return buffImg;
    }

    public String getCode() {
        return code;
    }
}


2.验证码使用

jsp代码

<form method="get" onSubmit="javascript:CheckForm(this,event)" action= "${pageContext.request.contextPath}/addStudentServlet">
          <table>
             <caption style="font-size:25px;">注册本系统用户</caption>
             <tr>
                <td><span>用户名</span></td>
                <td><input type="text" name="username"/></td>
             </tr>
             <tr  class="info">
                <td>提示信息</td>
                <td><span></span></td>
             </tr>
             <tr>
                <td><span>密   码</span></td>
                <td><input type="password" name="password"/></td>
             </tr>
             <tr>
                <td><span>重复密码</span></td>
                <td><input type="password" name="repassword"/></td>
             </tr>
             <!-- 验证码 -->
             <tr>
                <td><input style="width:60px;margin-right:10px;" id="code" value="sfds" type="text"/></td>
                <td><img src="${pageContext.request.contextPath}/validateCodeServlet" id="CreateCheckCode" align="middle" title="点击刷新验证码" onclick="getCode()" style="cursor: pointer;"/></td>
             </tr>
             
             <tr id="btn">
                <td align="center"><input  type="submit" name="sub" value="注册"/></td>
             </tr>
          </table>
        </form>

js代码

function getCode(){
	        $("#CreateCheckCode").attr("src","${pageContext.request.contextPath}/validateCodeServlet?time="
				+ new Date().getTime());
        }


3.遇到的问题

    自己输入的验证码和系统通过session对象返回的验证码老是不一致,老是出现从session中取出的值是上次刷新页面的的验证码,老是不同步,在这里我是用的Ajax来实现了同步

$.ajax({
                cache: true,
                type: "POST",
                url:ajaxCallUrl,
                async: false,
                error: function(request) {
                    alert("Connection error");
                    evt.preventDefault();
                },
                 success: function(data) {
                    //回调函数
                    if("验证失败" == data){
                       evt.preventDefault();
                      }
                    
                  }
                  });

4.通过Ajax访问检查验证码是否正确的Servlet代码

package com.syh.utils;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CheckImageCodeServlet extends HttpServlet{

	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}
	
	
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String code = request.getParameter("code");
		String code1 = (String) request.getSession().getAttribute("code");
		PrintWriter writer = response.getWriter();
		if(code1.equals(code)){
		    writer.write("验证成功");
		}else{
			writer.write("验证失败");
		}
	}
	
	
}

5.web.xml文件的配置的验证的验证码的servlet配置

<servlet>
      <servlet-name>CheckImageCodeServlet</servlet-name>
      <servlet-class>com.syh.utils.CheckImageCodeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>CheckImageCodeServlet</servlet-name>
      <url-pattern>/checkImageCodeServlet</url-pattern>
  </servlet-mapping>


========================================================================



5.整个jsp页面的代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>
   <style type="text/css">
        html,body{
            padding:0px;
            margin:0px;
            height:100%;
            width:100%;
        }
         #main,table{
            width:40%;
            margin:0 auto;
            background:#DBDBDB;
            height:40%;
         }
         table{
            margin-top:20%;
         }
         table tr {
            height:50px;
            line-height:50px;
         }
         #btn button,#btn input{
            margin-top:50px;
            width:80px;
            height:30px;
            background:green;
            text-align:center;
         }
         
         .info{
            color:red;
            FILTER: alpha(opacity=0);
            opacity:0;
            height:20px;
            line-height:20px;
         }
    
    </style>
	<script type="text/javascript" src="${pageContext.request.contextPath }/file/js/jquery.js"></script>
	<script type="text/javascript">
	    $(document).ready(function(){
	        $("input[name='username']").blur(function(){
	            CheckUsername(); 
	        } );
	    })
	   
	    CheckUsername = function(){
            var username = $("input[name=username]").val();
            //alert(username);
            if($.trim(username) != ""){
               var username1 = $.trim(username);
               /*使用Ajax进行验证*/
               var ajaxCallUrl = '${pageContext.request.contextPath}/checkUsernameServlet?username=' + username1;
	           $.ajax({
                cache: true,
                type: "POST",
                url:ajaxCallUrl,
                async: false,
                error: function(request) {
                    alert("Connection error");
                    
                },
                success: function(data) {
                    //验证用户名是否已经存在
                   //alert(data);
                    if("no" == data){
                       $(".info td span").html("用户名已经被占用");
                       $(".info").css("color","red");
                    }else{
                        
                       $(".info td span").html("用户名可以使用");
                       $(".info").css("color","blue");
                    }
                    $(".info").css("opacity","1");
                }
              });
            }else{
               //提示用户名不能为空
            }
        }
	   
	   
	   
	   
	
	
	    function getCode(){
	        $("#CreateCheckCode").attr("src","${pageContext.request.contextPath}/validateCodeServlet?time="
				+ new Date().getTime());
        }
        
        //鼠标出输入框时验证
       
        
        CheckPassord = function(){
            var password =  $("input[name=password]").val();
            var repassword =  $("input[name=repassword]").val();
            if($.trim(password) != '' && $.trim(repassword) != '' && $.trim(password) == $.trim(repassword)){
                 return 1;
            }else{
                 return  0;
            }
        }
        
        function CheckForm(form,evt){
            var flag = 0;
            //验证用户是否为空
            
            if($.trim($("input[name=username]").val()) != ""){
               flag = 1;
            }
            
            //验证用户名
            var text = $(".info td span").html();
            alert(text);
            if(text == "用户名可以使用"){
               flag = 1;
            }else{
               flag = 0;
            }
            if(flag == 1){
                 //验证密码是否相同
                 flag = CheckPassord();
                 if(flag ==1){
                    //验证验证码是否正确
                 var code = $("#code").val();
                 var ajaxCallUrl = '${pageContext.request.contextPath}/checkImageCodeServlet?code=' + code;
	             /*Ajax验证验证码*/
	           $.ajax({
                cache: true,
                type: "POST",
                url:ajaxCallUrl,
                async: false,
                error: function(request) {
                    alert("Connection error");
                    evt.preventDefault();
                },
                 success: function(data) {
                    //回调函数
                    if("验证失败" == data){
                       evt.preventDefault();
                      }
                    
                  }
                  });
               }else{
                  evt.preventDefault();
               }
            }else{
               evt.preventDefault();
            }
            
        }
	</script>
  </head>
  
  <body>
      
      <h2>${error}</h2>
      <div id = "main">
        
        <form method="get" onSubmit="javascript:CheckForm(this,event)" action= "${pageContext.request.contextPath}/addStudentServlet">
          <table>
             <caption style="font-size:25px;">注册本系统用户</caption>
             <tr>
                <td><span>用户名</span></td>
                <td><input type="text" name="username"/></td>
             </tr>
             <tr  class="info">
                <td>提示信息</td>
                <td><span></span></td>
             </tr>
             <tr>
                <td><span>密   码</span></td>
                <td><input type="password" name="password"/></td>
             </tr>
             <tr>
                <td><span>重复密码</span></td>
                <td><input type="password" name="repassword"/></td>
             </tr>
             <!-- 验证码 -->
             <tr>
                <td><input style="width:60px;margin-right:10px;" id="code" value="sfds" type="text"/></td>
                <td><img src="${pageContext.request.contextPath}/validateCodeServlet" id="CreateCheckCode" align="middle" title="点击刷新验证码" onclick="getCode()" style="cursor: pointer;"/></td>
             </tr>
             

<tr id="btn"> <td align="center"><input type="submit" name="sub" value="注册"/></td> </tr> </table> </form> </div> </body></html>

7.上面的jsp代码使用到了用户名通过Ajax进行验证是否已经存在的servlet


package com.syh.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.syh.pojo.Student;
import com.syh.service.StudentService;

public class CheckUsernameServlet extends HttpServlet{

	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = request.getParameter("username");
		PrintWriter writer = response.getWriter();
		if(username != null && username != ""){
			Student student = null;
			StudentService service = new StudentService();
			student = service.findSampleStudent(username);
			System.out.println("啥情况");
			if(student.getId() == null){
				System.out.println("ok");
				writer.write("ok");
			}else{//不为空的话说明拥有该用户名的学生存在
				System.out.println("用户名:no" + student.getUsername());
				writer.write("no");
			}
		}else{
			writer.write("no");
		}	
	}
	
	
}

8.验证用户名是否存在的servlet的配置在web.xml

<servlet>
      <servlet-name>CheckUsernameServlet</servlet-name>
      <servlet-class>com.syh.servlet.CheckUsernameServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>CheckUsernameServlet</servlet-name>
      <url-pattern>/checkUsernameServlet</url-pattern>
  </servlet-mapping>

使用jQuery AJAX实现验证码获取与验证的教程 AJAX(Asynchronous JavaScript and XML)是一个古老而强大的技术,它允许网页在无需重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。AJAX的核心是使用XMLHttpRequest对象,这是由微软首先引入的一种支持异步网络请求的技术。通过AJAX,前端开发者可以创建更为动态的用户界面,提高应用的响应速度,从而改善用户的体验。jQuery,作为一个流行的JavaScript库,简化了AJAX的使用,提供了一套更为简洁、易于理解的方法来处理AJAX请求。 阅读详情

相关推荐

ajax异步验证用户名是否存在

ajax异步验证用户名是否存在,非常小巧的实例,需要安装oracle数据,建立一个用户表,实例中有用户表的实体,可以仿照写一个数据库。

mysql 用户是否存在,检查用户是否存在于MySQL中并删除它?

要检查MySQL中有多少用户,请使用MySQL.user表。语法如下,以检查有多少用户。mysql>SELECTUserFROMmysql.user;以下输出显示用户-+------------------+|User|+------------------+|Mac||Manish||mysql.i...

weixin_35823403的博客 2036

NXP S32K3xx 多次复位(reset)后MCU跑死、崩溃、出错分析

s32k3出现多次复位后死机的情况

HeFlyYoung的博客 9515

java判断该用户是否存在

注意,上面的代码中使用了 try-with-resources 语句来自动关闭资源,这样可以避免忘记关闭资源导致的内存泄漏问题。如果要在 Java 中判断某个用户是否存在,可以先根据用户名或者其他唯一标识来查询数据库中是否存在对应的记录。如果查询到的记录数大于 0,就说明用户存在,否则用户不存在。来执行带有参数的 SQL 查询语句,并使用。在上面的代码中,我们使用了。

m0_54829066的博客 2016

从业10年的AI应用架构师:企业AI平台运营的4个核心经验,值得收藏

去年年底,我在某大型制造企业做AI咨询时,遇到了这样的场景:这不是个例。我接触过的10家企业中,有7家的AI平台都陷入了“技术自嗨”的陷阱——技术团队追求模型精度、功能完备性,却忽略了业务到底需要什么。如果你也遇到过类似问题:比如“模型准确率很高,但业务不买账”“AI项目上线后没人用”“投入产出比极低”,那么这篇文章的4个经验,可能会帮你避开这些坑。很多企业认为,AI平台就是“买一套工具+部署几个模型”。但实际上,企业AI平台的本质是“技术与业务的连接生态”:根据Gartner的报告,80%的企业AI项目失

AI 原生应用开发的博客 709

泛微E10 eBuilder低代码平台避坑指南:新手最容易犯的5个错误及解决方案

本文针对泛微E10 eBuilder低代码平台的新手开发者,总结了5个最常见错误及解决方案,包括表单联动配置、流程设计权限、动作流时序、数据加工类型转换和权限管理过度配置等问题。通过实战经验和代码示例,帮助开发者避开常见陷阱,提升开发效率。

weixin_30919429的博客 540

ajax 验证用户名是否已存在

ajax验证用户名是否已存在ajax验证用户名是否已存在 ,一般选用的是同步请求,因为验证用户是否存在的同时, 一般还要验证用户名是否为空等表单验证。jsp页面以及ajax验证如下:&lt;%@ page language=&quot;java&quot; import=&quot;java.util.*&quot; pageEncoding=&quot;UTF-8&quot;%&gt; &lt;% String path = req

程序人生 1万+

Opencv2.4.9源码分析——HoughCircles

图形可以用一些参数进行表示,标准霍夫变换的原理就是把图像空间转换成参数空间(即霍夫空间),例如霍夫变换的直线检测就是在距离-角度空间内进行检测。圆可以表示成: (x-a)2+(y-b)2=r2                   (1) 其中a和b表示圆心坐标,r表示圆半径,因此霍夫变换的圆检测就是在这三个参数组成的三维空间内进行检测。 原则上,霍夫变换可以检测任何形状。但复杂的形状需要的

赵春江的专栏 3万+

linux如何验证一个用户是否存在(),如何在Linux中列出用户

您是否曾经想列出Linux系统中的所有用户或计算系统中的用户数量?有用于创建用户,删除用户,列出已登录用户的命令,但是列出Linux中所有用户的命令是什么?本教程将向您展示如何列出Linux系统中的用户。使用/etc/passwd文件获取所有用户的列表本地用户信息存储在/etc/passwd文件中。该文件中的每一行代表一个用户的登录信息。要打开文件,您可以使用less:less /etc/pass...

weixin_33421411的博客 4640

【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板

NPU(Neural Processing Unit) 是专门用于人工神经网络推理与训练的处理器,具备高并行、低功耗、低延迟等特点。它是边缘 AI、自动驾驶、智能摄像头、语音识别等场景中的关键硬件。

moton2017的博客 2254

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

GW1NSR-4C ARM部分共有2个串口外设,都挂载在APB1总线上,最高支持波特率921.6Kbit/s,无奇偶校验位,8位数据位,1位停止位,支持高速测试模式 HSTM(High Speed Test Mode),即每个时钟周期输出1位数据,可以在短时间内传输大量数据。官方手册上没有描述发送和接收缓存FIFO的深度,所以不确定是否支持缓存。

whik1194的博客 1686

ajax实现验证码功能

实现功能:当点击验证码时更换验证码,当焦点离开验证码输入框时判断输入的验证码是否正确(用ajax实现)。 img.jsp这个页面负责创建一个验证码图片,由四位数字组成。 &lt;%@page import="javax.imageio.ImageIO"%&gt; &lt;%@page import="java.awt.image.BufferedImage"%&gt; &lt;%@page...

全场梦游c的博客 4325

Android 13.0 SystemUI下拉状态栏背景增加高斯模糊背景

在13.0的产品开发中,发现现在很多产品都是高斯模糊背景的,这种高斯模糊背景看起来效果很不错,产品开发需要SystemUI下拉状态栏背景也是高斯模糊背景,所以就要来实现下拉状态栏高斯模糊背景

安卓兼职framework和app工程师的博客 2671

Ajax--实现检测用户名是否存在功能

Ajax(Asynchronous Javascript And XML) 翻译成中文就是“异步JavaScript和XML”,即使用JavaScript与服务器进行异步交互,传输的数据为XML。AJAX还可以在浏览器实现局部刷新的效果,即不需要刷新整个页面,就比如之前的案例:验证码,这一特点给用户的感受是在不知不觉中完成请求和响应过程。

2301_76890677的博客 1210

Silly Tavern酒馆ai角色卡与世界书导入超详细教程!

前几天,我在设置 Silly Tavern 的时候,想导入一个喜欢的角色卡,结果发现不少朋友其实已经下载好了角色资源,但却不知道怎么正确导入使用。这篇文章就作为一份完整的新手向教程,一步步教你如何在 Silly Tavern 中导入角色卡、世界书,并实现与 AI 角色的真实互动。如果你是第一次接触这个功能,建议先收藏慢慢看~点击菜单栏上的 图标,打开角色界面。初始状态下,你应该只看到默认角色 Seraphina。你可以先点击她的头像尝试聊天,也可以导入自己喜欢的角色。点击导入按钮,选择你下载好的角色卡(通

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

AJAX实现验证码刷新和判断验证码正误

`JAVA验证码实现刷新功能,并通过ajax技术异步判断验证码正误 接上一个博客,对验证码进行刷新,使用ajax技术 前端代码如下: 通过点击超链接“看不清?换一张”进行验证码的更换 <div class="form-group"> <label>验证码</label> <span id="msgVerify" style="color: red"></span>

Li3422的博客 1130

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

验证码 ajax java_基于Ajax用户名验证、服务条款加载、验证码生成的实现方法

展示前台页regist.jsp用户注册>> 用户注册[模块说明:用户名检查、服务条款使用Ajax异步处理,验证码服务端生成]用户名: * 用户名由字母、数字、下划线组成.密码: * 密码长度6-8位,为了安全,应避免唯一格式.确认密码: * 确认密码,以保证您设置密码时没有手误邮箱: * 输入您的常用邮箱,方便我们与您取得联系.验证码: 看不清,换一张服...

weixin_42521032的博客 204

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java ajax 验证码_Java验证码和ajax判断

关于来了解相关的apiBufferedImage(intwidth, intheight, intimageType)构造一个类型为预定义图像类型之一的 BufferedImage。Graphics2D(Graphics2D 类扩展Graphics 类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。)jqu...

weixin_42502378的博客 221

Ajax用户名验证、服务条款加载、验证码生成

   Ajax(asynchronous javascript and xml)异步的javascript和xml.     是为了解决传统的web应用中"发送请求-等待响应"这种模式的弊端,(浏览器在发送完请求后,只能等待服务器的响应,用户不能做其他的操作,浏览器发送完请求,会抛弃整个页面,等待服务器返回新的页面,也就是说,浏览器和服务器之间交互的数据量很大,不能做到按需获取数据)而创建...

掬水月在手,弄花香满衣 167

获取Session 里面的验证码值,用Ajax进行验证

 验证码的 生成的例子很多,这里就不再写了..以下是 用Ajax 对用户输入的验证码和 随机的验证码进行比较. 注册、登陆的时候,往往会用验证码进行验证才能进行操作。我的验证码的是放在Session里面。开始尝试着在jsp页面获取 Session 里面的验证码的值,因为验证码是一张图片,所以得把值赋给一个隐藏的文本框内,取得验证码的值之后, 再和用户输入的验证码的值进行比较. 但第

yuqianskys的专栏 3238

ajax如何实现表单验证码,Ajax实现提交表单时验证码自动验证(原创自Zjmainstay)...

本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码。1、前端代码 index.html验证码提交自验证用户名验证码 (function($){$(document).ready(function(){$(".submitBtn").click(function() {var obj = $(this);$.ajax({url:'checkc...

weixin_33549115的博客 1237

使用servlet和ajax实现简单的验证码功能

验证码功能 验证码功能实现要点是在后端生成图片,同时将图片中的字符记录在session中,在验证输入的验证码是否正确时,取出session中的验证码对比用户输入字符串,相同则验证码输入正确,不同则验证码输入错误。 由于只是简单的验证码功能,存在一定的bug,例如在同一个浏览器中访问两个欢迎页url,则随意输入后一个访问的url上显示的验证码,都会提示验证码输入正确。这是因为session中存储的永远是最新生成的验证码。 web.xml <!-- 生成二维码图片的servlet --> &

qq_39217714的博客 404

Ajax—验证码部分实现

1、概念 Ajax不是一种新的编程语言, 而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。 2、使用原因 传统的网页(即不用ajax技术的网页) , 想要更新内容或者提交一个表单, 都需要重新加载整个网页。 使用Ajax技术的网页,通过在后台服务器进行少量的数据交换, 就可以实现异步局部更新。 3、验证码,前端代码 <script src="js/jQuery.js"></script> <script type="text/javascript"> $(

weixin_42190736的博客 351

Web开发 : 生成验证码并利用Ajax检验是否正确

后期差点砸桌子系列/言语表达失误所致结果呈现指点迷津(其实是废话/可直接跳过)实操部分(其实是贴代码部分)ResImgServlethtmlCodeAjaxjQuery部分ending(记得点赞) 结果呈现 直接看图???? 差不多就是对验证码的一个检验,如果对的话就后面出现个小勾,错的话就红色叉叉这样 指点迷津(其实是废话/可直接跳过) 要写这个功能其实也是源自于金老师的课/为了增加demo的真实性,毕竟校验码也用的挺多的了,本身这种字符型的都快渐渐淘汰了,再做不好就没啥意义了orz 其次的话ajax这

陈杉菜 561

SpringBoot+Layui+Ajax实现登录操作

SpringBoot+Layui+Ajax实现登录操作前言一、什么是 AJAX ?二、使用步骤1.编辑前端界面2.Ajax3.后台4.结果总结 前言 SpringBoot+Layui+Ajax实现登录操作验证用户输入的账号、密码、验证是否正确,向后台发送异步请求。 一、什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对

weixin_43563498的博客 6708

java验证码之MD5加密和ajax实现无刷新

首先我想说,大家都知道加密是怎么回事吧,像密码的话,不加密的话登陆时被黑客拦截就很容易被盗号啦。。。 验证码加密在我看来也就防止被暴力注册神马的。。。个人还是在sso的单点登陆(日后会做个总结)用加密比较多。 废话不多说,给代码就是了。。。 package com.util; import java.security.MessageDigest; public cla...

晚起的鸟儿 256
上一篇: JSP九大隐含对象
下一篇: Spring-HelloWorld
JavaWeb_Hao
博客等级 码龄9年 21粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值