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类实现用户名无刷新检测、密码强度检测、邮箱格式判断、字母与数字判断等,可以说包括了一般表单所需要的数据判断类型,本实例包括数据库连接代码,需要连接数据库的地方会有说明,有时间的朋友可对照...
Ajax实现用户注册模块,登陆框能连接数据库自动检测注册名是否已经存在,检测用户输入的密码格式,用户名格式等。
并且在注册用户时能通过ajax自动发送用户名到后台以检测用户名是否已经注册并返回提示信息。 2.数据库用的是mysql数据库(mysql的jdbc jar包已经包括在项目了),若用其他数据库, 需要将其他数据库的jdbc jar包加入...
本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...
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...
本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
ajaxinc: AJAX应用类(以ajax_命名的四个文件)、附件上传(upload_5xsoft.inc|asoft_upload.asp)和EXCEL导出文件(toexcel.asp)、顶部banner(top.asp)、验证码生成文件(CodeGen.asp、VerifyCode.asp),数据库连接文件...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...
它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...