ajax案例_校验用户名
ajax案例_校验用户名
代码下载
链接:https://pan.baidu.com/s/1pb_sdSmV9Ncs6UIz3q2ztg
提取码:fgx6
复制这段内容后打开百度网盘手机App,操作更方便哦
需求
输入用户名,失去焦点后,通过ajax访问数据库判断用户名是否被占用。
流程
- 搭建环境:数据库、jsp页面
- 输入用户名,失去焦点
- 触发js方法,判断数据库是否已有用户名
- 在指定的span处加入对应的结果(存在、可用)
搭建环境
jsp页面
其实只要有一个用户名就够了,其他就是为了稍微好看点,并用不到对应的功能。用户名后面的就是一个显示数据或者写数据的地方而已。
<table border="1px" width="600px">
<tr> <td>用户名 :</td>
<td><input type="text" name="name" id="name"/><span id="span01"></span></td>
</tr>
<tr>
<td>密码 :</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td>邮箱</td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td>简介</td>
<td><input type="text" name="info" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="注册" /></td>
</tr>
</table>
sql搭建
/*创建一个包括用户名和密码的数据库*/ /*创建数据库stus*/
CREATE DATABASE tuser;
/*使用数据库tuser*/
USE tuser;
/*创建表t_user*/
CREATE TABLE t_user(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
PASSWORD VARCHAR(20)
);
/*插入数据*/
INSERT INTO t_user VALUES(NULL,'admin','10086'),(NULL,'kaikai','8888');
INSERT INTO t_user(username,PASSWORD) VALUES('aobama','123'),('titi','234'),('aaa','234234');
/*查看结果*/
SELECT * FROM t_user;
开发代码
1_jsp
jsp修改
<td><input type="text" name="name" id="name" onblur="checkUserName()"/>
生成XmlHttpRequest的方法(复制来的)
function createXmlHttpRequest() {
var xmlHttp;
try { // Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {// Internet Explorer
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
return xmlHttp;
}
ajax代码
先完成功能,在慢慢补全。
function checkUserName() {
//1.创建xmlhtttprequest对象
var request = createXmlHttpRequest();
//获取姓名输入框的值
var name = document.getElementById("name").value; //2.用POST发送请求,模板复制来的,再修修改改
//checkUserName是我后面设置的servlet名,这里可以转到对servlet的创建处理了
request.open("POST", "checkUserName", true); //设置一个请求头,表明发送一个经过post编码的请求
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send("name="+name); //3.获取响应数据
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
//获取servlet中写好的响应,目前都没有
var responseText = request.responseText;
//测试能不能得到响应
alert(responseText);
}
}
};
}
1_servlet
servlet三步走
response.setContentType("text/html;charset=UTF-8");
//1.获取参数
String name = request.getParameter("name");
//2.调用方法
//这里传给service处理
CheckUserNameService service = new CheckUserNameServiceImpl();
boolean isExist = service.checkUserName(name);
//3.呈现数据,等下再说吧
1_service、dao
//service就是调用dao,目前用boolean是OK的
public boolean checkUserName(String username) throws SQLException {
UserDao dao = new UserDaoImpl();
return dao.checkUserName(username);
public boolean checkUserName(String username) throws SQLException {
QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
String sql = "SELECT count(*) FROM t_user WHERE username = ?";
//这里有一个需要注意的地方
//当用ScalarHandler时,如果用SELECT *不能查到数据时会报空指针异常
//因此改成count(*)
long query = runner.query(sql, new ScalarHandler<>(), username);
return query > 0;
}
2_servlet
补全servlet的第三步
//用println是因为可以直接用int数字。如果是write的话就要传String的“1”
response.getWriter().println(isExist ? 1 : 2);
2_jsp
把第3步改成需要的样子
当然可以先用alert测试好再改,我这里就不测试了
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var responseText = request.responseText;
if (responseText != 1) {
document.getElementById("span01").innerHTML = "<font color='green'>可用</font>"
} else {
document.getElementById("span01").innerHTML = "<font color='red'>被占用</font>"
}
}
};
测试后,功能实现,完结撒花
//这里是用jQuery的post方法改写的,流程和上面差不多
function checkUserName() {
//1.得到数据
var name = $("#name").val();
//2.发送请求
$.post("checkUserName", {name : name}, function (data) {
//3.输出要页面上
if (data != 1) {
//可用
$("#span01").html("<font color='green'>可用</font>")
} else {
//不可用
$("#span01").html("<font color='red'>被占用</font>")
}
});
}
ajax案例_校验用户名的更多相关文章
- JQuery去实现校验用户名
JQuery 是什么? javascript 的代码框架. 有什么用? 简化代码,提高效率. 核心 write less do more , 写得更少,做的更多. load //找到这个元素, 去执行 ...
- 零基础学习java------35---------删除一个商品案例,删除多个商品,编辑(修改商品信息),校验用户名是否已经注册(ajax)
一. 删除一个商品案例 将要操作的表格 思路图 前端代码 <%@ page language="java" contentType="text/html; cha ...
- Ajax详解及其案例分析------如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表
本节主要内容预览: 1 获得Ajax对象 2 使用Ajax对象发送GET请求 3 使用Ajax对象发送POST请求 4 使用Ajax校验用户名 5 POST请求时的乱码处理 6 GET请求时的乱码处理 ...
- 案例16-validate自定义校验规则校验用户名是否存在
1 知识点 2 register.jsp代码 注意自定义校验规则的时候,提交必须是同步的方式. <%@ page language="java" contentType=&q ...
- 十七 Ajax&校验用户名功能
Ajax: 即"Asynchronous JavaScript And XML", 异步JavaScript和XML , 是指一种创建的交互式页面应用的网页开发技术,它并不是新的技 ...
- 校验用户名是否存在(ajax+jackson)
只是简单的仿某度注册的用户名输入离焦后检验 目录结构 没有涉及到数据库 html <!DOCTYPE html> <html lang="en"> < ...
- 【JAVAWEB学习笔记】22_ajax:异步校验用户名和站内查询
Js原生Ajax和Jquery的Ajax 学习目标 案例1-异步校验用户名是否存在 案例2-站内查询 一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应 ...
- 案例_(单线程)使用xpath爬取糗事百科
案例_(单线程)使用xpath爬取糗事百科 步骤如下: 首先通过xpath插件找出我们要爬取的信息的匹配规则 url = "https://www.qiushibaike.com/8hr/p ...
- AJAX案例二:简单表单验证
案例:如果用户名输入为张三,那么在失去焦点时后面会显示该用户名已被注册,否则显示可以注册! <%@ page language="java" import="jav ...
随机推荐
- redis列表数据类型---list
一.概述 redis列表是简单的字符串列表,按照插入顺序排序 可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含2^32-1个元素(每个列表超过40亿个元素). 二.redis ...
- 测试库异常down分析(abnormal instance termination)
客户测试库,down问题分析,根据alert 的问题指向,实例异常终止,但是无其它有价值的信息 Terminating the Instance Due to Error Out-Of-Memory( ...
- 本地安装SQL Server 2017 Express和Microsoft SQL Server Management Studio 18.1
sqlserver下载链接:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 这个安装的是免费版的Express,当然也可 ...
- css 盒子 取值
盒子:当我们设置一个标签宽高时,默认设置的是盒子里面content大小. 内容盒:content 填充盒:content+padding(overflow截取的区域) 边框盒:content+padd ...
- 【转】HTTP响应状态码参考簿
HTTP响应状态码参考簿 http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. http状态返回代码 代码 说明100 (继续) 请求者应当继续提出请求. ...
- jmeter学习笔记(三)配置元件之HTTP信息头管理
使用jmeter模拟发送http请求时,有些请求是需要带上HTTP请求头里面的信息.比如页面需要登录信息的,那个就需要用户登录信息authorization.这个时候是需要使用到HTTP信息头管理器. ...
- linux驱动开发随手记【1】
1.一个patch只完成一项任务 2.用vim编辑多个文件,想同时关闭所有文件时候,可以用 :qall 命令 .vim用户手册08 3.mmc dev 0.mmc为U-boot命令,这句话的含义是设置 ...
- 四、DDL常见操作汇总
DDL: Data Define Language 数据定义语言,主要用来对数据库.表进行一些管理操作.如:建库.删库.建表.修改表.删除表.对列的增删改等. 一.库的管理 1.创建库 create ...
- c# 虚属性
- Linux下制作静态库 & 动态库
静态库 1.将.c生成.o文件 gcc-cadd.c-o add.o 2.使用ar工具制作静态库 ar rcs lib库名.a add.o sub.o div.o 3.编译静态库到可执行文件中 gcc ...