使用Ajax验证用户名是否已存在

jsp页面中的ajax实现代码:

function checkUserName(){
		//获取用户名文本框中的值
		var username = document.getElementById("username").value;
		if(username != null&&username != ""){
		
		//1.创建异步交互对象
		var xhr = createXmlHttp();
		//2.设置监听
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4){
				if(xhr.status == 200){
					document.getElementById("span1").innerHTML = xhr.responseText;
				}
			}
		}
		//3.开启连接
		xhr.open("GET","${pageContext.request.contextPath}/user_findUserName.action?time="+new Date().getTime()+"&username="+username,true);
		//4.发送
		xhr.send(null);
		}
	}
	
	function createXmlHttp(){
		   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;
	}

持久层:

package cn.book.user.dao;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.book.user.entities.User;

//用户模块持久层
public class UserDao extends HibernateDaoSupport{
	//根据用户名查询用户
	public  User findUserName(String userName){
		String hql = "from User where username = ?";
		List<User> list = this.getHibernateTemplate().find(hql, userName);
		if(list != null&&list.size() > 0){
			return list.get(0);
		}
		return null;
	}
}

业务层里面调用下持久层就可以:

package cn.book.user.service;

import org.springframework.transaction.annotation.Transactional;

import cn.book.user.dao.UserDao;
import cn.book.user.entities.User;

//用户模块业务层
@Transactional//标记为事务
public class UserService {
	private UserDao userDao;

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
	//根据用户名查询用户
	public User findUserName(String userName){
		return userDao.findUserName(userName);
	}
}

action类:

package cn.book.user.action;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import cn.book.user.entities.User;
import cn.book.user.service.UserService;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

//用户操作的action类
public class UserAction extends ActionSupport implements ModelDriven<User>{
	private User user = new User();
	private UserService userService;
	
	@Override
	public User getModel() {
		return this.user;
	}
	
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	//跳转到注册页面
	public String registPage() {
		return "registPage";
	}
	
	//使用AJAX异步校验用户名
	public String findUserName() throws IOException {
		//调用service层
		User userJudge = userService.findUserName(user.getUsername());
		//获取response对象向页面输出内容
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/html;charSet=UTF-8");
		if(userJudge != null){
			//查询到用户名
			response.getWriter().println("<font color='red'>用户名已存在!</font>");
		}else{
			//未查询到用户名
			response.getWriter().println("<font color='green'>用户名可使用!</font>");
		}
		return NONE;
	}

	
}


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值