验证昵称的唯一性
前台:
昵称文本框的失焦事件 blur
1. 获取昵称文本框的值
2. 判断值是否为空
如果为空,提示用户,禁用按钮,并return
3. 判断昵称是否做了修改
从session作用域中获取用户昵称 (如果在js中想要使用el表达式获取域对象,js需要写在JSP页面中,无法在js文件中获取)
如果用户昵称与session中的昵称一致,则return
4. 如果昵称做了修改
发送ajax请求后台,验证昵称是否可用
如果不可用,提示用户,并禁用按钮
如果可用,清空提示信息,按钮可用
昵称文本框的聚焦事件 focus
1. 清空提示信息
2. 按钮可用
后台:
Web层:
1. 获取参数(昵称)
2. 从session作用域获取用户对象,得到用户ID
3. 调用Service层的方法,得到返回的结果
4. 通过字符输出流将结果响应给前台的ajax的回调函数
5. 关闭资源
Service层:
1. 判断昵称是否为空
如果为空,返回"0"
2. 调用Dao层,通过用户ID和昵称查询用户对象
3. 判断用户对象存在
存在,返回"0"
不存在,返回"1"
Dao层:
1. 定义SQL语句
通过用户ID查询除了当前登录用户之外是否有其他用户使用了该昵称
指定昵称 nick (前台传递的参数)
当前用户 userId (session作用域中的user对象)
String sql = "select * from tb_user where nick = ? and userId != ?";
2. 设置参数集合
3. 调用BaseDao的查询方法