功能实现的思路:当通常一个网站需要注册用户信息的时候,往往会让用户起一个名字,但一般要求这个用户名称是不能重复的,为了判断新注册的用户填写的用户名是否已经存在,需要对填写的用户名称进行判断,实际项目开发时候注册成功的用户信息会存入数据库中,真正的判断是需要和数据库数据进行对比来决定用户名是否已经存在,但我这里仅仅是模拟这个功能,所以在后台对用户输入的用户名的处理比较简单,直接让他和一个字符串进行对比(手动滑稽),和字符串一样的话就提示用户这个用户名已经存在,不存在也会友善提醒用户这个名字可以使用。

1、设计用户注册界面:

 <table>
<tr>
<th>用户注册</th>
</tr>
<tr>
<td>用户名:</th>
<td>
<input type="text" id="userName" name="userName" onblur="checkUserName()"/>
<font id="img"></font>
</td>
</tr>
<tr>
<td>密码:</th>
<td><input type="password" id="password1" name="password1"/></td>
</tr>
<tr>
<td>确认密码:</th>
<td><input type="password" id="password2" name="password2"/></td>
</tr>
<tr>
<td><input type="submit" id="sb" value="注册"/></td>
<td><input type="button" id="button" value="重置密码" onclick="czmima()"/></td>
</tr>
</table>

2、利用Ajax技术实现请求向后台服务器的访问以及对返回结果的处理功能:

 <script type="text/javascript">
//简单的实现用户名和密码重置的功能
function czmima(){
document.getElementById("password1").value="";
document.getElementById("password2").value="";
document.getElementById("userName").value="";
}
function checkUserName() {
var userName = document.getElementById("userName").value;
//创建XMLHttpRequest对象
var xmlHttp = null;
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//XMLHttpRequest对象请求后台服务
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4&&xmlHttp.status==200){
var dataObject = eval("("+xmlHttp.responseText+")");
if(dataObject.exist){
//如果用户名存在,就会在文本框的后边显示一个X的图标,表示这个用户名称不可用
document.getElementById("img").innerHTML="<img src='no.png'/>&nbsp;该用户名称已经存在!";
}else{
//如果用户名存在,就会在文本框的后边显示一个“对号”的图标,表示这个用户名称可用
document.getElementById("img").innerHTML="<img src='ok.png'/>&nbsp;该用户名称可以使用!";
}
}
}
//规定请求类型、请求处理的地址以及是否使用异步请求处理。
//这里还需要把用户输入的用户名作为参数传给后台servlet用以判断
xmlHttp.open("get","checkUserNameServlet?userName="+userName,true);
//将请求发送给服务器进行处理
xmlHttp.send();
}
</script>

3、编写后台用于处理前端页面传入的userName参数的Servlet:

 package com.java1234.web;

 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 net.sf.json.JSONObject; public class CheckUserNameServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
} @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置浏览器接收到请求是需要知道的处理格式(MIME)
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//创建一个JSONObject对象,用于封装处理结果
JSONObject reslutJSon = new JSONObject();
//接收从前端传来的userName的参数
String userName = request.getParameter("userName");
//这里就是直接让前端传入的参数和一个字符串进行比较
if("Marry".equals(userName)) {
reslutJSon.put("exist", true);
}else {
reslutJSon.put("exist", false);
}
out.println(reslutJSon);
out.flush();
out.close();
} }

4、配置web.xlml文件,然后就能运行出结果了,这个需要注意的是,这个因为使用了JSON对象,所以程序运行要保证包含JSON的jar包。

  总结:实话讲这是一个简单到极致的功能实现,但对于一个初学者的我来说,我需要从最基础的知识点抓起,通过一个简单的实例我能搞清楚Ajax动态实现局部数据更新的大致过程,不贪多不贪复杂,一步一步来稳稳的走路其实速度并不慢!

使用Ajax和JSON实现注册时候验证用户名是否存在的功能的更多相关文章

  1. 利用Ajax和JSON实现关于查找省市名称的二级联动功能

    功能实现的思路:我们经常碰见网上购物时候填写收件地址会用到这个查找省市县的三级联动查找功能,我们可以利用Ajax和JSON技术模拟这个功能,说白了同样是使用Ajax的局部数据更新功能这个特性.因为省市 ...

  2. 利用jQuery实现的Ajax 验证用户名是否存在

    异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...

  3. ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册

    在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...

  4. thinkphp+jquery+ajax前后端交互注册验证

    thinkphp+jquery+ajax前后端交互注册验证,界面如下 register.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  5. Django——Ajax发送请求验证用户名是否被注册

    场景: 用户注册的时候,输入用户名之后,Ajax发送请求到后端,后端验证该用户名是否已经被注册,然后返回到注册页面提示用户. 1.模型: from django.db import models cl ...

  6. Ajax注册验证用户名是否存在 ——引自百度经验

    Ajax注册验证用户名是否存在 http://jingyan.baidu.com/article/a948d6515fdf870a2dcd2e85.html

  7. Ajax验证用户名是否被注册

    Ajax验证用户名是否被注册 var xmlHttp; function createXMLHttpRequest(){ // 创建XMLHttp请求对象 if(window.ActiveXObjec ...

  8. 《ajax学习》之ajax+JavaScript事件验证用户名是否可注册

    当用户注册时,服务器数据库需要对用户输入的用户信息(以用户名为例子)进行验证,在不刷新页面的情况下又需要页面和服务器进行数据请求,最好的方法是用ajax异步请求. 一.实现思路: 1.用户输入信息 2 ...

  9. django中ajax的使用以及避开CSRF 验证的方式

    ajax(Asynchronous Javascript And Xml) 异步javascript和XML ajax的优点 使用javascript技术向服务器发送异步请求 ajax无须刷新整个页面 ...

随机推荐

  1. 3步实现ssh面密码登录

    1.上次本机的公钥和私钥 [root@vicweb ~]#ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in ...

  2. 一起学Hadoop——使用IDEA编写第一个MapReduce程序(Java和Python)

    上一篇我们学习了MapReduce的原理,今天我们使用代码来加深对MapReduce原理的理解. wordcount是Hadoop入门的经典例子,我们也不能免俗,也使用这个例子作为学习Hadoop的第 ...

  3. python函数式编程——返回函数

    1.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 2.闭包 注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还 ...

  4. Vue2.0学习——axios用法详解

    功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 http请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 自动转换 JSON 数据 客 ...

  5. python---初始sqlite3

    ***sqllite不需要单独安装,python2.5以上自带的! ***官方中文文档:https://docs.python.org/2/library/sqlite3.html ***SQLite ...

  6. windows 设置开机启动,启动项

    第一步ctrl+R输入以下任意一个 方法一: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 方法二: shell:start ...

  7. 强大的图片展示插件,JQuery图片预览展示插件

    只需要引入JQuery.js , viewer.css 和 viewer.js <!DOCTYPE html> <html lang="en"> <h ...

  8. Codeforces 1017E The Supersonic Rocket 凸包,计算几何,字符串,KMP

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1017E.html 题目传送门 - CF1017E 题意 给定两个点集,并构成两个凸包. 问这两个凸包是否可 ...

  9. js获取背景颜色

    //js获取背景颜色var Airport=$("#Airport").css('background-color'); js设置背景颜色 $("#intercity&q ...

  10. 066 基于checkpoint的HA机制实现

    1.说明 针对需要恢复的应用场景,提供了HA的的机制 内部实现原理:基于checkpoint的 当程序被kill的时候,下次恢复的时候,会从checkpoint对用的文件中进行数据的恢复 2.HA原理 ...