使用Ajax和JSON实现注册时候验证用户名是否存在的功能
功能实现的思路:当通常一个网站需要注册用户信息的时候,往往会让用户起一个名字,但一般要求这个用户名称是不能重复的,为了判断新注册的用户填写的用户名是否已经存在,需要对填写的用户名称进行判断,实际项目开发时候注册成功的用户信息会存入数据库中,真正的判断是需要和数据库数据进行对比来决定用户名是否已经存在,但我这里仅仅是模拟这个功能,所以在后台对用户输入的用户名的处理比较简单,直接让他和一个字符串进行对比(手动滑稽),和字符串一样的话就提示用户这个用户名已经存在,不存在也会友善提醒用户这个名字可以使用。
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'/> 该用户名称已经存在!";
}else{
//如果用户名存在,就会在文本框的后边显示一个“对号”的图标,表示这个用户名称可用
document.getElementById("img").innerHTML="<img src='ok.png'/> 该用户名称可以使用!";
}
}
}
//规定请求类型、请求处理的地址以及是否使用异步请求处理。
//这里还需要把用户输入的用户名作为参数传给后台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实现注册时候验证用户名是否存在的功能的更多相关文章
- 利用Ajax和JSON实现关于查找省市名称的二级联动功能
功能实现的思路:我们经常碰见网上购物时候填写收件地址会用到这个查找省市县的三级联动查找功能,我们可以利用Ajax和JSON技术模拟这个功能,说白了同样是使用Ajax的局部数据更新功能这个特性.因为省市 ...
- 利用jQuery实现的Ajax 验证用户名是否存在
异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...
- ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册
在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...
- thinkphp+jquery+ajax前后端交互注册验证
thinkphp+jquery+ajax前后端交互注册验证,界面如下 register.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...
- Django——Ajax发送请求验证用户名是否被注册
场景: 用户注册的时候,输入用户名之后,Ajax发送请求到后端,后端验证该用户名是否已经被注册,然后返回到注册页面提示用户. 1.模型: from django.db import models cl ...
- Ajax注册验证用户名是否存在 ——引自百度经验
Ajax注册验证用户名是否存在 http://jingyan.baidu.com/article/a948d6515fdf870a2dcd2e85.html
- Ajax验证用户名是否被注册
Ajax验证用户名是否被注册 var xmlHttp; function createXMLHttpRequest(){ // 创建XMLHttp请求对象 if(window.ActiveXObjec ...
- 《ajax学习》之ajax+JavaScript事件验证用户名是否可注册
当用户注册时,服务器数据库需要对用户输入的用户信息(以用户名为例子)进行验证,在不刷新页面的情况下又需要页面和服务器进行数据请求,最好的方法是用ajax异步请求. 一.实现思路: 1.用户输入信息 2 ...
- django中ajax的使用以及避开CSRF 验证的方式
ajax(Asynchronous Javascript And Xml) 异步javascript和XML ajax的优点 使用javascript技术向服务器发送异步请求 ajax无须刷新整个页面 ...
随机推荐
- 微信jssdk分享功能开发
先理解下分享: 在app端 ,经常能看见 分享按钮的功能,(分享给朋友,分享到朋友圈,分享到QQ空间等等): https://open.weixin.qq.com/(微信开发平台),这需要到开放平台注 ...
- js中类定义函数时用prototype与不用的区别
转载自:https://blog.csdn.net/yexudengzhidao/article/details/72866047 先看例子 function ListCommon2(first,se ...
- [转] UniCode编码表
Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含了世界上所有的语言字符,它也就成为了全世界一种通用的编码,而且用十六进制4位表示一个编码,非常简结直观,为大多数开发者所 ...
- [ZJOI2006]皇帝的烦恼
题解: 具有单调性的题目还是要多想想二分答案 不二分答案暴力dp是n^3的 非常不优秀 二分答案之后就比较好做 mx[i],nx[i]表示最多/最少几个与a[1]相同 代码: #include < ...
- Neo4j导入本地csv问题
把要导入的文件放到D盘,LOAD CSV WITH HEADERS FROM "file:///D:/xx.csv" AS line create (:node); 总提示输入错误
- P1010 幂次方 递归模拟
题目描述 任何一个正整数都可以用22的幂次方表示.例如 137=2^7+2^3+2^0137=27+23+20 同时约定方次用括号来表示,即a^bab 可表示为a(b)a(b). 由此可知,13713 ...
- OpenJ_Bailian 2810 完美立方
题目地址: https://vjudge.net/problem/OpenJ_Bailian-2810 形如a3= b3 + c3 + d3的等式被称为完美立方等式.例如123= 63 + 83 + ...
- hash碰撞POC
hash碰撞POC: 该类型漏洞POC编写过程难点有二: 一. hash碰撞数据的产生或收集 二. 使用responseTime来判断是否存在hash,如何精确的得到 三. 如何估算出服务器的处理/响 ...
- NIO缓冲区基本操作:rewind(),clear(),flip()
rewind() rewind()方法将position置0,清除mark,它的作用在于为提取Buffer的有效数据做准备. ByteBuffer byteBuf = ByteBuffer.alloc ...
- Linux 查看文件被那个进程写数据
目录 背景 步骤 获取写文件的进程号 文件被那个进程使用,写数据不是用lsof可以找出来吗,但现实情况是lsof没找出来T_T 背景 centos7 在某一段时间监控报警磁盘使用率达99%,由于监控属 ...