验证用户名重复注册的问题
目前有个项目,使用的是SSI,前端显示使用的Jquery的validate进行验证,目前网站需要做一个防止重复的用户名注册,但是由于对Jquery不是很了解,请教下各位如何有效的防止避免重复数据的保存呢?
原理我目前了解了,就是在保存用户数据时,将提交的用户名与数据库的用户名进行比较,SQL呢,就是select count(1) from 表 where username = #{username} .返回一个1和0进行判断。但是我判断后还是没效果,不知道那里错了。有指教!!!
我的控制跳转的代码:
String userName = userDao.getUsrName();
try {
if(userService.checkUsrName(userName) == 0){
User user = new User();
copyProperties(user, userDao, response);
user.setUsrPwd(ShaHex.messageDigest(userDao.getUsrPwd()));
user.setUsrHead("etb.jpg");//默认头像
userService.insert(user);
}
} catch (ServiceException e) {
LOG.error("保存用户信息失败");
e.printStackTrace();
}
return "redirect:/";
------解决方案--------------------
说实话这个和Jquery的关系不是很大,你的是否重复用户名的判断是在后台;
加个断点调试下就很清楚的知道问题出在哪了,如果你的说的没效果是指即使重复的用户名也写到表里去的话,你就好好检查下userService.checkUsrName(userName)方法
------解决方案--------------------你断点这下:userService.checkUsrName(userName),看得到的结果是什么;
建议:int resultsNameCount = userService.checkUsrName(userName);
String userName = userDao.getUsrName();
try {
if(resultsNameCount > 0){
}
} catch (ServiceException e) {
LOG.error("保存用户信息失败");
e.printStackTrace();
}
return "redirect:/";
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String userName = request.getParameter("userName");
Integer sameNameCount = userManagerService.checkIsSameName(userName);
if(sameNameCount > 0){
response.getWriter().print("1");
}else{
response.getWriter().print("0");
}
另外建议楼主:User user = new User();