`
453898875
  • 浏览: 12535 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

ajax连接数据库检测用户名是否存在

 
阅读更多

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax检测用户名</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<form name="myform">
用户名:<input type="text" name="username" onblur="checkname();">
<span id="checkbox"></span>
<!--
这里用于在执行后显示结果的地方
-->
</form>
</body>
</html>

ajax.js

// JavaScript Document
var XHR; // 定义一个全局对象
function createXHR() { // 首先我们得创建一个XMLHttpRequest对象
	if (window.ActiveXObject) {// IE的低版本系类
		XHR = new ActiveXObject('Microsoft.XMLHTTP');// 之前IE垄断了整个浏览器市场,没遵循W3C标准,所以就有了这句代码。。。但IE6之后开始有所改观
	} else if (window.XMLHttpRequest) {// 非IE系列的浏览器,但包括IE7 IE8
		XHR = new XMLHttpRequest();
	}
}
function checkname() {
	var username = document.myform.username.value;
	createXHR();
	XHR.open("GET", "checkUser.jsp?username=" + username, true);// true:表示异步传输,而不等send()方法返回结果,这正是ajax的核心思想
	XHR.onreadystatechange = zhangshuang;// 当状态改变时,调用byhongfei这个方法,方法的内容我们另外定义
	XHR.send(null);
}
function zhangshuang() {
	if ((XHR.readyState == 4) || (XHR.status == 200)) {
		{
			var textHTML = XHR.responseText;
			document.getElementById('checkbox').innerHTML = textHTML;
		}
	}
}

DB_Conn.java

package com.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DB_Conn {
    Connection conn;
    Statement st;
    public DB_Conn() {
        conn_init();
    }
    void conn_init() {
        setConnection();
        setStatement();
    }
    public void setConnection() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
   
    public void setStatement() {
        try {
            st = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
   
    public boolean checkUser(String username) {
        String sql="select * from users where username='"+username+"'";
        ResultSet rs;
        try {
            rs = st.executeQuery(sql);
            if(rs.next())
            {
                conn.close();
                return true;
            }           
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }  
}

checkUser.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="com.db.DB_Conn"%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
		<title>checkUser</title> 
	</head>
	<body>
		<%
			String username = request.getParameter("username");
			DB_Conn db=new DB_Conn();
			if ("".equals(username)) {
				out.println("<font color=red>用户名不能为空! </font>");
			} else if (username.length() < 4 || username.length() > 20) {
				out.println("<font color=red>用户名" + username
						+ "不合法!(长度为4到20位,且不能使用?#=等特殊字符) </font>");
			} else if (db.checkUser(username)) {
				out.println("<font color=red>用户名" + username + "已经存在!</font>");
			} else {
				out.println("<font color=green>用户名" + username
						+ "尚未存在,可以使用!</font>");
			}
		%>
	</body>
</html>


分享到:
评论

相关推荐

    带数据库连接的AJAX表单验证实例PHP版

    通过这个Ajax类实现用户名无刷新检测、密码强度检测、邮箱格式判断、字母与数字判断等,可以说包括了一般表单所需要的数据判断类型,本实例包括数据库连接代码,需要连接数据库的地方会有说明,有时间的朋友可对照...

    Ajax实现用户注册模块

    Ajax实现用户注册模块,登陆框能连接数据库自动检测注册名是否已经存在,检测用户输入的密码格式,用户名格式等。

    基于servlet过滤器和ajax的用户登录管理系统,包含完整的项目代码和sql文件,以及说明文档。

    并且在注册用户时能通过ajax自动发送用户名到后台以检测用户名是否已经注册并返回提示信息。 2.数据库用的是mysql数据库(mysql的jdbc jar包已经包括在项目了),若用其他数据库, 需要将其他数据库的jdbc jar包加入...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    JAVA上百实例源码以及开源项目

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    java开源包4

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    php网络开发完全手册

    15.3.1 数据库服务器的连接与断开 241 15.3.2 选择数据库 242 15.3.3 执行SQL语句 242 15.3.4 获得查询结果集中的记录数 243 15.3.5 获得结果集中的某一条记录 244 15.3.6 逐行获取结果集中的每一条 15.3.6 记录 245...

    基于J2EE框架的个人博客系统项目毕业设计论...

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    asoft签到管理系统tykq3.5_build20110125

    ajaxinc: AJAX应用类(以ajax_命名的四个文件)、附件上传(upload_5xsoft.inc|asoft_upload.asp)和EXCEL导出文件(toexcel.asp)、顶部banner(top.asp)、验证码生成文件(CodeGen.asp、VerifyCode.asp),数据库连接文件...

    java源码包---java 源码 大量 实例

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    java开源包1

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包11

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包2

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包3

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包6

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包5

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

Global site tag (gtag.js) - Google Analytics