前端页面:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-2.1.0.js" ></script>
<script type="text/javascript" src="js/bootstrap.min.js" ></script>
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/signin.css" />
<script type="text/javascript">
$(function() {
//失去焦点触发事件
$("#userName").blur(function(){
var userNameInput = $(this).val();
$.post("${pageContext.request.contextPath }/checkUserName",
{"userName": userNameInput},
function(data) {
var flag = data.flag;
if(flag){
$("#errorInfo").html("用户名重复");
}else{
$("erroeInfo").html("");
}
},
"json"
);
});
});
</script>
</head>
<body>
<div class="container">
<form class="form-signin">
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" id="userName" class="form-control" placeholder="用戶名" autofocus>
<span id="errorInfo"></span>
<input type="password" class="form-control" placeholder="密碼">
<input type="checkbox" value="remember-me"> Remember me
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
</div>
</body>
</html>
控制层
package pers.zhang.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pers.zhang.service.UserService;
public class CheckUserNameServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得用户名
String userName = request.getParameter("userName");
//传递到service
UserService userService = new UserService();
boolean flag = userService.checkUserName(userName);
String jsonStr = "{\"flag\":" + flag + "}";
response.getWriter().write(jsonStr);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
Service层:
public boolean checkUserName(String userName) {
UserDao userDao = new UserDao();
User u = userDao.checkUserName(userName);
//存在返回true
return u == null ? false : true;
}
Dao层:
public User checkUserName(String userName) {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("user_name", userName));
User u = (User) criteria.uniqueResult();
tx.commit();
session.close();
return u;
}
User表:
测试: