Web--使用Ajax与Hibernate完成表单异步校验

30 篇文章 2 订阅
22 篇文章 1 订阅
前端页面:
<%@ 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表:

在这里插入图片描述

测试:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值