云笔记的项目分析(5):个人中心:验证昵称的唯一性

<input class="form-control" name="nick" id="nickName" placeholder="昵称" value="${user.nick }">
 
	 $("#nickName").blur(function(){ // 失去焦点事件
		
		 // 验证昵称的唯一性
		 checkNick ();
		 
	 }).focus(function(){ // 聚焦事件
		 // 清空提示信息
		 $("#msg").html("");
		 // 禁用提交按钮
		 $("#btn").prop("disabled",true);
	 	 // 提交按钮可用
		 //$("#btn").prop("disabled",false);
	 });
	 
	 
	 // 验证昵称的唯一性
	 function checkNick () {
		// 1、得到昵称文本框的值
		 var nickName = $("#nickName").val();
		 //	2、判断昵称是否为空
		 if (isEmpty(nickName)) {
			 // 设置字体颜色
			 $("#msg").css("color","red");
			 // 为空,提示信息
			 $("#msg").html("* 用户昵称不能为空!");
			 // 禁用提交按钮
			 $("#btn").prop("disabled",true);
			 return;
		 }
		 // 清空文本信息
		 $("#msg").html("");
		 
		 // 3、发送ajax请求,验证昵称的唯一性
		 $.ajax({
			 url:"user",
			 type:"get",
			 data:{action:"checkNick",nickName:nickName},
			 success:function(result){
				// 提示信息
				 $("#msg").html(result.msg);
				 if (result.code == 1) {
					 // 设置提示信息的颜色
					 $("#msg").css("color","green");
					// 按钮可用
					 $("#btn").prop("disabled",false);
				 } else {
					// 设置提示信息的颜色
					 $("#msg").css("color","red");
					 // 按钮禁用
					 $("#btn").prop("disabled",true);
				 }
			 }
		 });
	 }
	 

Servlet层

else if ("checkNick".equals(action)) {
			//验证昵称唯一性
			checkNick(request,response);
		}
private void checkNick(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		//1.从session作用域中获取用户对象,得到用户ID
		User user = (User)request.getSession().getAttribute("user");
		Integer userId = user.getUserId();
		//2.接收参数
		String nickName = request.getParameter("nickName");
		//3.调用service层,返回resultInfo对象
		ResultInfo<User> resultInfo = userService.checkNick(userId, nickName);
		//4.将resultInfo对象转换成JSON串,响应给ajax的回调函数
		JsonUtil.toJson(resultInfo, response);
	}

userService层: 传递了userId和nickName

public ResultInfo<User> checkNick(Integer userId,String nickName) {
		ResultInfo<User> resultInfo = new ResultInfo<User>();
		//1.判断昵称是否为空
		if(StringUtil.isEmpty(nickName)){
			//空 code=0,msg用户昵称不能为空  返回resultInfo对象
			resultInfo.setCode(0);
			resultInfo.setMsg("用户昵称不能为空");
			return resultInfo;
		}
		//2.调用Dao层,查询用户昵称是否被占用,返回user对象
		User user = userDao.findUserByNick( userId, nickName);
		//3.如果user对象存在
		if (user != null) {
			resultInfo.setCode(0);
			resultInfo.setMsg("用户昵称已存在,不可使用");
		}else{
			resultInfo.setCode(1);
			resultInfo.setMsg("用户昵称可用");
		}
		return resultInfo;
	}

userDao层

public User findUserByNick(Integer userId,String nickName){
			User user = null;
			Connection connection = null;
			PreparedStatement preparedStatement = null;
			ResultSet resultSet = null;
					try {
						//1.得到数据库连接
						connection = DBUtil.getConnection();
						//2.写sql语句
						String sql = "select * from tb_user where nick = ? and userId != ?";
						//3.预编译
						preparedStatement = connection.prepareStatement(sql);
						//4.设置参数,下标从1开始
						preparedStatement.setString(1, nickName);
						preparedStatement.setInt(2, userId);
						//5.执行查询,返回结果集
						resultSet = preparedStatement.executeQuery();
						//6.分析结果集,得到user对象
						if (resultSet.next()) {
							user = new User();
							user.setHead(resultSet.getString("head"));
							user.setMood(resultSet.getString("mood"));
							user.setNick(resultSet.getString("nick"));
							user.setUname(resultSet.getString("uname"));
							user.setUpwd(resultSet.getString("upwd"));
							user.setUserId(resultSet.getInt("userId"));	
						}
					} catch (Exception e) {
						e.printStackTrace();
					}finally{
						//关闭
						DBUtil.close(resultSet, preparedStatement, connection);
					}
			return user;
		}

 

上一篇:shell工具(cut\sed\awk\sort)


下一篇:基于Java的云笔记系统