Ajax——异步检查用户名是否存在示例

在任何网站注册用户的时候,都会检查用户是否已经存在。很久以前的处理方式是将所有数据提交到服务器端进行验证,很显然这种方式的用户体验很不好;后来有了Ajax,有了异步交互,当用户输完用户名继续填写其他信息的时候,Ajax就将信息发到了服务器去检查该用户名是否已经被注册了,这样如果用户名已经存在,不用等用户将所有数据都提交就可以给出提示。采用这种方式大大改善了用户体验。

regist.jsp

pageEncoding="UTF-8"%>

Insert title here

var xmlHttp;

//创建Ajax核心对象XMLHttpRequest

function createXMLHttp(){

if(window.XMLHttpRequest){

xmlHttp = new XMLHttpRequest();

}else{

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

}

function checkUsername(username){

createXMLHttp();

//设置请求方式为GET,设置请求的URL,设置为异步提交

xmlHttp.open("GET","CheckServlet?username="+username,true);

//将方法地址复制给onreadystatechange属性

//类似于电话号码

xmlHttp.onreadystatechange = checkUsernameCallback();

//将设置信息发送到Ajax引擎

xmlHttp.send(null);

}

function checkUsernameCallback(){

//Ajax引擎状态为成功

if(xmlHttp.readyState == 4){

//HTTP协议状态为成功

if(xmlHttp.status == 200){

var text = xmlHttp.responseText;

if(text == "true"){

document.getElementById("msg").innerHTML = "此用户名已存在,无法使用!";

}else{

document.getElementById("msg").innerHTML = "此用户名可以使用";

}

}

}

}

用户名:

密  码:

CheckServlet.java

public class CheckServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

public static final String DBURL = "jdbc:sqlserver://localhost:1433;DatabaseName=bbs";

public static final String DBUSER = "sa";

public static final String DBPASS = "pass";

public CheckServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

this.doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

Connection conn = null;

PreparedStatement pst = null;

ResultSet rs = null;

PrintWriter out = response.getWriter();

String username = request.getParameter("usernaem");

try{

Class.forName(DBDRIVER);

conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);

String sql = "select count(username) from user where username=?";

pst = conn.prepareStatement(sql);

pst.setString(1,username);

rs = pst.executeQuery();

if(rs.next()){

if(rs.getInt(1)>0){//用户名已经存在了

out.print("true");

}else{

out.print("false");

}

}

}catch(Exception e){

e.printStackTrace();

}finally{

try{

conn.close();

}catch(Exception e){

e.printStackTrace();

}

}

}

}相关阅读:

HTML常用标签大全及html标签的特点

Android中通过AsyncTask类来制作炫酷进度条的实例教程

探寻Android的线程问题

Android的APK应用签名机制以及读取签名的方法

IE下模拟css3中的box-shadow(阴影)效果代码

Java锁之阻塞锁介绍和代码实例

Android4.2中全屏或者取消标题栏的方法总结

Java操作FreeMarker模板引擎的基本用法示例小结

WinXP开启任何程序任务栏出现2个相同标签的解决方法

利用SVG和CSS3来实现一个炫酷的边框动画

php使用unset()删除数组中某个单元(键)的方法

Fedora 7.0 中文输入法

实用的简单PHP分页集合包括使用方法

android读取assets文件示例

php异步检测用户名是否存在,AJAX_Ajax——异步检查用户名是否存在示例,在任何网站注册用户的时候, - phpStudy...相关推荐

  1. Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性

    Vim之代码异步检测插件 ALE 前言 知名的 vim 代码检测插件主要是两个 syntastic neomake ALE ALE 虽是后起之秀,但目前是功能最强大的一个 实时检测.为了让代码可以在编 ...

  2. ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性

    Vim之代码异步检测插件 ALE 前言 知名的 vim 代码检测插件主要是两个 syntastic neomake ALE ALE 虽是后起之秀,但目前是功能最强大的一个 实时检测.为了让代码可以在编 ...

  3. AJAX异步检查,检查用户名是否存在

    AJAX异步检查,检查用户名是否存在 写法一: var xmlHttp;if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Op ...

  4. 【转】1.7异步编程:基于事件的异步编程模式(EAP)

    传送门:异步编程系列目录-- 上一篇,我给大家介绍了".NET1.0 IAsyncResult异步编程模型(APM)",通过Begin*** 开启操作并返回IAsyncResult ...

  5. 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

  6. javascript等待异步线程完成_JavaScript 中的异步原理

    来源:极链科技 作者:周哲 所谓"异步" ,简单说就是一个任务分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段.比如,有一个任务是读取文件进行处理,异 ...

  7. nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析

    Ajax异步文件上传与NodeJS express服务端处理的示例分析 发布时间:2021-07-24 11:17:21 来源:亿速云 阅读:79 作者:小新 这篇文章主要介绍Ajax异步文件上传与N ...

  8. 深入理解python异步编程_深入理解Python异步编程

    1 什么是异步编程 1.1 阻塞程序未得到所需计算资源时被挂起的状态. 程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的. 常见的阻塞形式有:网络I/O阻塞.磁盘I/O ...

  9. 同步电路出现异步清零可以吗_异步计数器 || 计数器的分类 ||异步二进制十进制|| 74290 8421 5421 || 数电...

    异步计数器 || 计数器的分类 || 异步 二进制 十进制 || 74290 || 数电 这一节介绍异步二进制计数器. 计数器功能: 计数器是对输入脉冲个数进行计数的时序电路. 计数器除了直接用于计数 ...

最新文章

  1. Office 365系列之十:批量部署O365客户端
  2. SVN trunk branches tags 的用法 - 摘自网络
  3. 依赖注入的三种方式_Java核心知识 Spring原理十 Spring 依赖注入四种方式
  4. Tech.Ed上海会场都结束了!
  5. python 遍历内嵌tuple_python内置数据结构list、set、dict、tuple(一)
  6. OpenGL基础11:空间
  7. php试题多选,php考试题 (选择题).doc
  8. 用极域课堂软件卸载软件
  9. uniapp app中导出手机号码到通讯录
  10. Profinet协议基础知识(一)
  11. 数据可视化图表总结(一)
  12. 14.spring aop之aspect切入点语法详解
  13. 自动驾驶领域的Android?百度能否超越特斯拉和谷歌
  14. 在centos中注册gitlab runner
  15. 兔年伊始谈闲书:三体-乌合之众-百年孤独 和《猫城记》(随笔)
  16. PCB正片和负片有什么区别
  17. 数据仓库和数据库的区别
  18. html div标签空白占位,空白符对HTML结构的影响与解决方案
  19. 健身教练学习书籍推荐-结合知乎
  20. 广州大学计算机网络实验2,计算机网络实验一_

热门文章

  1. MySQL的多表查询
  2. hint java_Oracle中Hint深入理解
  3. Layui hint: is not a valid module
  4. 阿里HR有多敬业,程序员:恐怖,晚上11点接到阿里面试电话
  5. 传智播客 php系列,传智播客PHP 2015-JS高级系列视频教程 83集
  6. JavaScript -- ajax相关知识点的笔记
  7. 手机APP界面设计尺寸笔记
  8. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
  9. 牧原面试(销售部-统计分析)总结
  10. 微信清除缓存数据方法