8.6 实例:验证用户名是否存在
用户在注册的时候,如果用户名已经被使用,那么马上提示用户,不用等到用户填完信息,点注册的时候,才说用户名已经存在。
首先,需要在输入用户名的input元素里,加入onblur事件,账号这部分的html代码如下:

onblur是失去焦点的时候触发,也就是输入用户名,光标移动的时候就会触发。
这里我写了一个checkUser函数:
function checkUser(){
//取出用户名
var userName=$("#studyNum").val();
//提示文字,默认没有提示
var tips ="";
//如果用户名是空的,提示
if(userName==""){
// alert(userName);
tips="不能为空";
// 把错误信息提示更新到网页
$("#userTip").attr("class","error");
$("#user_tips_info .tipsTXT > span").html(tips);
}else{
//发起一个ajax请求,get方式发送到AjaxServlet,发送数据是data里面的两组数据
$.ajax({
type : "GET",
url : "AjaxServlet",
data : {
types : "userVali",
name : userName
},
success : function(msg) {
//成功执行后调用的回调函数,如果返回的信息是0,账号已经存在,这个0是AjaxServlet返回的
if (parseInt(msg) != 0) {
// 把错误信息提示更新到网页
tips ="帐号已存在";
$("#userTip").attr("class","error");
$("#user_tips_info .tipsTXT > span").html(tips);
}
}
});
}
}
为了响应这个请求,我们需要把AjaxServlet写完:
public class AjaxServlet extends HttpServlet {
private static final long serialVersionUID = 6033791887340351355L;
public void doPost(HttpServletRequest request, HttpServletResponse response) {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
IUserDao userDao = (IUserDao) SpringUtil.getBean("userDao",
this.getServletContext());
request.setCharacterEncoding("UTF-8");
//取得参数
String type = request.getParameter("types");
if ("userVali".equals(type)) {
String userName = (String) request.getParameter("name");
response.setContentType("text/plain;charset=UTF-8");
// 如果用户名存在,那么返回1,否则返回0
if (userDao.isUsernameExist(userName)) {
response.getWriter().print("1");
} else {
response.getWriter().print("0");
}
}
}
}
而这个servlet如果是低版本,还需要到web.xml里注册。类似这样下图,然后才可以使用AjaxServlet这个名字作为服务的名字

首先,需要在输入用户名的input元素里,加入onblur事件,账号这部分的html代码如下:

onblur是失去焦点的时候触发,也就是输入用户名,光标移动的时候就会触发。
这里我写了一个checkUser函数:
function checkUser(){
//取出用户名
var userName=$("#studyNum").val();
//提示文字,默认没有提示
var tips ="";
//如果用户名是空的,提示
if(userName==""){
// alert(userName);
tips="不能为空";
// 把错误信息提示更新到网页
$("#userTip").attr("class","error");
$("#user_tips_info .tipsTXT > span").html(tips);
}else{
//发起一个ajax请求,get方式发送到AjaxServlet,发送数据是data里面的两组数据
$.ajax({
type : "GET",
url : "AjaxServlet",
data : {
types : "userVali",
name : userName
},
success : function(msg) {
//成功执行后调用的回调函数,如果返回的信息是0,账号已经存在,这个0是AjaxServlet返回的
if (parseInt(msg) != 0) {
// 把错误信息提示更新到网页
tips ="帐号已存在";
$("#userTip").attr("class","error");
$("#user_tips_info .tipsTXT > span").html(tips);
}
}
});
}
}
为了响应这个请求,我们需要把AjaxServlet写完:
public class AjaxServlet extends HttpServlet {
private static final long serialVersionUID = 6033791887340351355L;
public void doPost(HttpServletRequest request, HttpServletResponse response) {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
IUserDao userDao = (IUserDao) SpringUtil.getBean("userDao",
this.getServletContext());
request.setCharacterEncoding("UTF-8");
//取得参数
String type = request.getParameter("types");
if ("userVali".equals(type)) {
String userName = (String) request.getParameter("name");
response.setContentType("text/plain;charset=UTF-8");
// 如果用户名存在,那么返回1,否则返回0
if (userDao.isUsernameExist(userName)) {
response.getWriter().print("1");
} else {
response.getWriter().print("0");
}
}
}
}
而这个servlet如果是低版本,还需要到web.xml里注册。类似这样下图,然后才可以使用AjaxServlet这个名字作为服务的名字
