Ajax异步刷新注册验证

导读:本篇文章讲解 Ajax异步刷新注册验证,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前端代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			#userName{border:1px solid lightgray;height: 25px;}
			#userName:focus{border:1px solid blue;}
		</style>
		<script type="text/javascript">
			function validate(obj) {
				//得到当前输入框的内容
				var userName = obj.value;
				//创建对象【绝大多数浏览器都支持XMLHttpRequest方式创建】
				var xhr = null;
				try{
					xhr = new XMLHttpRequest();
				}catch(e){
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				//初始化【GET和POST忽略大小写】这里地址后面可以传递请求参数 不论GET还是POST,如果是GET请求只能在这里传递参数
				xhr.open("POST", "/ojbk/valid.do?userName="+userName, true);
				//经过测试 火狐浏览器这句话可加可不加
				xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
				//绑定事件 回调函数【onreadystatechange是全小写的】
				xhr.onreadystatechange = function(){
					if(xhr.readyState==4 && xhr.status==200){
						//接收后台响应过来的数据
						var res = xhr.responseText;
						if(res == "1"){
							//将接收到的数据展示到页面中
							document.getElementById("userName").style.border = "1px solid red";
							document.getElementById("msg").innerHTML = "<img src='imgs/xx.bmp'/>此用户名太受欢迎,请更换一下";
						}else if(res == "2"){
							//将接收到的数据展示到页面中
							document.getElementById("userName").style.border = "1px solid green";
							document.getElementById("msg").innerHTML = "<span style='color:green;'>可以注册</span>";
						}
					}
				}
				//发送请求【send方法的参数其实是发送POST请求的参数】
				xhr.send();
			}
		</script>
	</head>
	<body>
		用户名<input type="text" id="userName" name="userName" onblur="validate(this);">
		<span id="msg"></span>
	</body>
</html>

后端接受请求

package zz.practice.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import zz.practice.dao.IUserDao;
import zz.practice.dao.impl.UserDaoImpl;
import zz.practice.domain.User;


@WebServlet("/valid.do")
public class _05_ValidateServlet extends HttpServlet {
	
	private IUserDao userDao = new UserDaoImpl();

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//处理响应数据中文乱码
		resp.setContentType("text/html;charset=utf-8");
		resp.setCharacterEncoding("utf-8");
		
		//接收请求参数
		String userName = req.getParameter("userName");
		//查询数据库
		User user = userDao.loadUserByName(userName);
		String res = "";
		if(null != user){
			//user不为空,表示此用户名已被占用,不能注册
			res = "1";
		}else{
			//可以注册
			res = "2";
		}
		PrintWriter pw = resp.getWriter();
		pw.write(res);
		pw.flush();
		pw.close();
	}
	
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75233.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!