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;
}
}