<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作用域中获取用户对象,得到用户IDUser 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;}

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

  1. 2.请求安全-- 如何验证请求的唯一性

    如何验证请求的唯一性 前言 讲到请求的唯一性,是我在接口API中开发中遇到的一个问题,有一个需求就当当你的链接被捕获之后如何让它失效,当然是在别人没有破解规则之前!如果别人截取了你的请求可以进行大量请 ...

  2. 验证元素的唯一性(二重循环法和快排优化)

    学校练习,简单的我就不放上来了,值得整理的,我保存一下 习题4 1.1.验证元素唯一性(二重循环)   1.1.1.算法描述 验证元素唯一性,主要方法是:建立两重循环,进行校验每个元素和其他元素的 1 ...

  3. html 验证邮箱地址,验证邮箱地址唯一性.html

    验证邮箱地址是否已经注册 p:not(:empty) { padding: 15px; } .container { padding-top: 100px; } 邮箱地址 // 获取页面中的email ...

  4. 云日记个人中心项目思路

    验证昵称的唯一性     前台:         昵称文本框的失焦事件  blur             1. 获取昵称文本框的值             2. 判断值是否为空           ...

  5. Java项目——云R记

    Java入门级项目:云R记 视频地址 https://www.bilibili.com/video/BV1YU4y1p7wj?from=search&seid=1307576622141006 ...

  6. 云日记结构bug心得

    用户模块     通过用户行为来区分       actionName         用户登录           actionName="login"         进入个人 ...

  7. 网易邮箱VIP注册页面可部分绕过Windows安全中心的验证

    小白在日常摸鱼中发现,网易邮箱登录后在浏览器中保存了密码的情况下,进入注册新账号,VIP邮箱模块,可不经由Windows安全中心验证就可以查看浏览器中保存的关于网易邮箱部分的密码.

  8. layui设置按钮不可点击_(eblog)7、博客发布收藏、用户中心的设置

    小Hub领读: 继续我们的eblog,今天来完成博客文章收藏,用户中心的设置! 项目名称:eblog 项目 Git 仓库:https://github.com/MarkerHub/eblog(给个 s ...

  9. 数据中心小母线与列头柜供配电系统的综合比较

    数据中心小母线系统是数据中心末端母线供配电系统的俗称.数据中心小母线只是相对于变电站低压出线母线或传统大型建筑物中主干低压母线单条母线容量较小而已.文中介绍了小母线系统与列头柜形式供配电系统的技术性能 ...

最新文章

  1. 虚拟机Linux中判断用户输入的是 Yes 或 NO
  2. 如何重启Cloudera Manager?
  3. 【数据结构作业心得】4-0 二叉树
  4. Spark On YARN 集群安装部署
  5. python文件合法模式组合_python设计模式之组合模式
  6. unknown column in field list_tf.feature_column的特征处理探究
  7. Spark源码系列(四)图解作业生命周期
  8. MFC 键盘鼠标钩子
  9. GIS:深圳独立坐标系与国家2000坐标系互转教程
  10. Oracle 11g RAC OEM配置
  11. 上twitter_如何在Twitter上更改您的显示名称
  12. Mac在线看视频卡顿
  13. xp电脑怎样连接无线网络连接服务器,xp笔记本电脑怎么连接无线网wifi呢
  14. 第五届阿里天池中间件比赛经历分享
  15. easyui treegrid php,JQuery EasyUI TreeGrid控件的使用
  16. Linux:试管中的生命
  17. Aspose.Words在word文档合并时如何控制列表编号
  18. Linux中suid提权
  19. vsftpd设置被动模式_Linux下vsftp怎么设置被动模式?
  20. Cu 大彻大悟内存管理 mm (update 0410)

热门文章

  1. Day4-php 字符串 定界符
  2. php insert id,php mysqli_insert_id()函数
  3. Adobe Captivate 2019 11.5.0 Windows和macOS汉化中文版汉化补丁Adobe Captivate中文官网captivatecn.com
  4. 小学奥数题--饮料问题
  5. maya mentray_mentalray for maya2017
  6. 非传递骰子 C++题解
  7. comsol 出现花屏,图形变大等问题
  8. C语言程序设计-现代方法 第二版 第9.1 小节代码 显示双关语改进版
  9. LeetCode 1155. 掷骰子的N种方法--动态规划
  10. SAP QM配置详解之一:基本设置