jsp页面

<head>

<script type="text/javascript" src="js/register.js"></script>

</head>

<table>

<td>用户名:</td>
<td> <input type="text" name="r_name" id="r_name" onblur="CheckUserName()">
<span id="span01"></span>
</td>

</table>

js文件夹下的register.js

//创建对象
function ajaxFunction(){
var xmlHttp;
try{
// 适用于IE7+, Firefox, Chrome, Opera, Safari
xmlHttp=new XMLHttpRequest();
}
catch(e){
try{
//Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
// 适用于IE6, IE5
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
xmlHttp=false;
}
}
}
return xmlHttp;
}

var flag=ture;
function CheckUserName(){
//获取jsp页面输入的值
var name=document.getElementById("r_name").value;
if(name==""||name==null){
document.getElementById("span01").innerHTML="<font color='red'>用户名不能为空!</font>"
flag=false;
}else{
//1.创建对象
var request=ajaxFunction();
//2.发送请求
request.open("POST","/StudyWeb/CheckUserNameServlet",true);//true表示异步提交
//注册状态改变监听,获取服务器传送过来的数据
request.onreadystatechange=function(){
//readyState==4表示请求已经完成,且响应已就绪。status==200表示“OK”
if(request.readyState==4 && request.status==200){
var data=request.responseText;//获取CheckUserNameServlet中response中存储的值
if(data == 1){
document.getElementById("span01").innerHTML="<font color='red'>用户名已存在!</font>"
flag=false;
}else{
document.getElementById("span01").innerHTML="<font color='green'>√</font>"
flag=true;
}
}
}
//如果是post方式带数据,那么这里要添加头,说明提交的数据类型是一个经过url编码的form表单数据
request.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
//带数据过去,在send方法里填写表单数据
request.send("name="+name);
}
return flag;
}

后台StudyWeb项目下的CheckUserNameServlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取ajax发送过来的name值
String r_name=request.getParameter("name");
try {
//检验是否存在该用户名
boolean isExist=userService.CheckUserName(r_name);
System.out.println("isExist"+isExist);
//通知页面,到底有没有
if(isExist){
response.getWriter().println(1);//存在用户名
}else{
response.getWriter().println(2);//不存在该用户
}
} catch (Exception e) {
e.printStackTrace();
}
}

UserDaoImpl中方法的实现

public boolean CheckUserName(String u_name) {
boolean flag=false;
String sql="select u_id,u_name,u_password,u_email,u_phone from user where u_name=?";
conn=super.getConnection();
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,u_name);
rs=pstmt.executeQuery();

//如果存在我输入的用户名和数据库表中已有的用户名相同时
if(rs.next()){

flag=true;
}
} catch (SQLException e) {

e.printStackTrace();
}finally{
super.closeAll(conn, pstmt, stmt, rs);
}
return flag;
}

ajax验证用户名是否存在的更多相关文章

  1. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

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

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

  3. ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

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

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

  5. 11.10 (下午)开课二个月零六天(ajax验证用户名,ajax调数据库)

    用ajax验证用户名是否可用 testuid.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  6. 基于jQuery实现的Ajax 验证用户名唯一性

    基于jQuery实现的Ajax 验证用户名唯一性 前端jsp页面代码 <tr> <th><span class="requiredField"> ...

  7. 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  8. Ajax验证用户名

    用Ajax验证用户名: 接口: get guestbook/index.php m : index a : verifyUserName username : 要验证的用户名 返回 { code : ...

  9. ajax验证用户名 当用户名框的数据改变时 执行ajax方法

    ajax验证用户名 当用户名框的数据改变时 执行ajax方法 <html xmlns="http://www.w3.org/1999/xhtml" ><head ...

  10. 使用Ajax验证用户名

    Ajax是一项很重要的技术,下面简要举个例子,来解释如何使用Ajax.步骤如下:使用Ajax验证用户名使用文本框的onBlur事件 使用Ajax技术实现异步交互创建XMLHttpRequest对象通过 ...

随机推荐

  1. python接口自动化(二十五)--unittest断言——下(详解)

    简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门  没错最初的话题就是登录,由于博客园的登录机制改变了,本篇以我找到的开源免费的登录API为案例,结合 unittest 框 ...

  2. nuxt Window 或 Document未定义解决方案

    概述 在用nuxt开发服务端渲染项目并引入第三方库的时候,经常会遇到window或document未定义的情况,原因是这个第三方库里面用到了window或者document,然后在服务端打包的时候,n ...

  3. WebGL展示3D房屋内景

      原文地址:WebGL展示3D房屋内景   由于生活和工作上的原因,从年前开始一直到处奔波,没有太多的时间去关注和学习WebGL图形学相关的技术, 不过陆陆续续都有学习使用blender进行3D建模 ...

  4. 二分搜索树实现Java的Map(下)

    二分搜索树Map public class BSTMap<K extends Comparable<K>,V> implements Map<K,V> { priv ...

  5. 解决SpannableString在Android组件间传递时显示失效的问题

    问题:在A activity中传递一个SpannableString到B activity中,并最终传递到B activity中的TextView中,但是没有展示出Span效果. 解决:阅读TextV ...

  6. BFPRT算法

    解决的问题:在一个数组中找到最小的k个数 常规解法:1.排序,输出前k个数,时间复杂度O(n*log(n)). 2.利用一个大小为k的大根堆,遍历数组维持大根堆,最后返回大根堆就可以了,时间复杂度O( ...

  7. arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)

    你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...

  8. 前端基于Canvas生成等值面的方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的项目中,我们做过基于PM2.5的站点监测数据对全区域进 ...

  9. MongoDB 文章目录

    基础: MongoDB入门系列(一):基础概念和安装 MongoDB入门系列(二):Insert.Update.Delete.Drop MongoDB入门系列(三):查询(SELECT) MongoD ...

  10. JVM 学习(二)Java 内存模型、方法内联、逃逸 --- 2019年4月

    1.Java 的内存模型 定义了 happens-before,如果同一个线程中,字节码的先后顺序,后者观测了前者的运行结果,那么就会按顺序执行. Java 线程之间的通信由 Java 内存模型控制. ...