博客
关于我
夜光带你走进 Ajax(四)
阅读量:261 次
发布时间:2019-03-01

本文共 1805 字,大约阅读时间需要 6 分钟。

夜光序言:

 

一个不在乎你的人 你卑微到尘埃里 他都不会多看你一眼

 

正文:

3 AJAX第三例(用户名是否已被注册)

3.1 功能介绍

在注册表单中,当用户填写了用户名后,把光标移开后,会自动向服务器发送异步请求。服务器返回true或false,返回true表示这个用户名已经被注册过,返回false表示没有注册过。

客户端得到服务器返回的结果后,确定是否在用户名文本框后显示“用户名已被注册”的错误信息

 

3.2 案例分析

  1. regist.jsp页面中给出注册表单;
  2. 在username表单字段中添加onblur事件,调用send()方法;
  3. send()方法获取username表单字段的内容,向服务器发送异步请求,参数为username;
  4. RegistServlet:获取username参数,判断是否为“Genius”,如果是响应true,否则响应false;

 

3.3 代码

regist.jsp

<script type="text/javascript">

function createXMLHttpRequest() {

try {

return new XMLHttpRequest();

} catch (e) {

try {

return new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

return new ActiveXObject("Microsoft.XMLHTTP");

}

}

}

 

function send() {

var xmlHttp = createXMLHttpRequest();

xmlHttp.onreadystatechange = function() {

if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {

if(xmlHttp.responseText == "true") {

document.getElementById("error").innerHTML = "夜光:用户名已被注册";

} else {

document.getElementById("error").innerHTML = "";

}

}

};

xmlHttp.open("POST", "/ajaxdemo1/BServlet", true);

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

var username = document.getElementById("username").value;

xmlHttp.send("username=" + username);

}

</script>

<h1>注册</h1>

<form action="" method="post">

用户名:<input id="username" type="text" name="username" onblur="send()"/><span id="error"></span><br/>

密 码:<input type="text" name="password"/><br/>

<input type="submit" value="注册"/>

</form>

 

RegistServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

 

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

 

if("Genius".equals(username)) {

response.getWriter().print(true);

} else {

response.getWriter().print(false);

}

}

 

转载地址:http://etbo.baihongyu.com/

你可能感兴趣的文章
设计模式(C#)——01单例模式
查看>>
一张图让你了解——mysql高可用:分库分表
查看>>
《程序猿的第n+3天》bootstrap做收缩导航
查看>>
linux项目部署常用命令
查看>>
autotools教程
查看>>
android instant app
查看>>
ubuntu非root用户如何访问vmware共享文件夹
查看>>
如何使用Postman保存请求和返回,离线查看请求数据
查看>>
系统架构
查看>>
图解HTTP (chap4 Http状态码) 5XX
查看>>
creator世界坐标w_pos会变化导致的录屏回放时相对位置变化造成bug(改为local_pos即可解决)
查看>>
Python3实现程序更新
查看>>
Python从基础到进阶——tiantian520 著(转载)
查看>>
类似愤怒小鸟的飞行弹道
查看>>
(二十七)unity4.6学习Ugui中文文档-------Unity3D UI (uGUI)窗口扩展
查看>>
Android官方文档之DataBinding库
查看>>
【python】输出到文件, f.write与print
查看>>
【今日CV 计算机视觉论文速览 第97期】Tue, 9 Apr 2019
查看>>
【mAP】关于目标检测mAP的一些理解
查看>>
庄子:谁知南华秋水意?
查看>>