使用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无须刷新整个页面 ...
随机推荐
- https://www.cnblogs.com/zoro-robin/p/6110188.html
https://www.cnblogs.com/zoro-robin/p/6110188.html https://blog.csdn.net/kongxx/article/details/65435 ...
- js中类定义函数时用prototype与不用的区别
转载自:https://blog.csdn.net/yexudengzhidao/article/details/72866047 先看例子 function ListCommon2(first,se ...
- [转] jQuery的deferred对象详解
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...
- 10本Java架构师必读书籍
1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...
- [转]java位运算(1)
http://blog.csdn.net/xiaochunyong/article/details/7748713 Java提供的位运算符有:左移( << ).右移( >> ) ...
- Flink-- 数据输出Data Sinks
flink在批处理中常见的sink 1.基于本地集合的sink(Collection-based-sink) 2.基于文件的sink(File-based-sink) 基于本地集合的sink(Coll ...
- Python 类的内置方法
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # p ...
- Ubuntu16.04中nginx除80之外其他端口不能访问
不废话, 大多数都以为是ufw防火墙的问题. 但我的是因iptables防火墙, 坑死我了. 查了好多也没查到怎么在Ubuntu关闭iptables, 索性直接卸载 apt-get remove ip ...
- nexus、maven私服仓库(一)
下载地址:http://www.sonatype.com/download-oss-sonatype 将下载好的nexus解压到指定的目录下,我这里使用的是nexus-3.14.0-04-win64 ...
- js面向对象实例
JSON方式来编写对象简单 不适合多个对象 var json={a:12, show:function (){ alert(this); }};json.show(); //理所当然弹出的是objec ...