《黑马旅游网》综合案例(四)注册功能邮件激活
邮件激活:
为什么要进行邮件激活?为了保证用户填写的邮箱是正确的。将来可以推广一些宣传信息,到用户邮箱中。
发送邮件
需要开启授权码:打开qq邮箱-->设置-->账户
往下找找打这个点击开启 或 点击生成授权码:发送个信息即可开启就会有个授权码给你(或者qq密码也可以)
打开MailUtils工具类:
最下面main方法进行测试:
打开QQ邮件进行查看:
用户点击邮件激活
用户激活就是修改用户表中的status为Y
分析:
UserServiceImpl:中编写
设置激活码和发送
public class UserServiceImpl implements UserService { private UserDao userDao = new UserDaoImpl(); /** * 注册用户 * @param user * @return */ @Override public boolean regist(User user) { //根据用户名查询用户对象 User u = userDao.findByUsername(user.getUsername()); //判断是否为null if (u!=null){ //用户名存在,注册失败 return false; } //保存用户信息 //设置激活码,唯一字符串 user.setCode(UuidUtil.getUuid()); //设置激活状态 user.setStatus("N"); userDao.save(user); //激活邮件发送, String content = "<a href='http://localhost/travel/activeUserServlet?code="+user.getCode()+"'>点击激活【旅游网】</a>"; MailUtils.sendMail(user.getEmail(),content,"激活邮件"); return true; } }
去重新注册一个(注意:Email要填写你刚刚测试的邮箱)
就会收到邮件:点击
404还没进行编写
UserDao:添加两个方法:
User findByCode(String code); void updateStatus(User user);
UserDaoImpl:
/** * 根据激活码查询用户对象 * @param code * @return */ @Override public User findByCode(String code) { User user = null; try { String sql = "select * from tab_user where code = ?"; user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), code); } catch (DataAccessException e) { e.printStackTrace(); } return user; } /** * 修改指定用户激活状态 * @param user */ @Override public void updateStatus(User user) { String sql = "update tab_user set status='Y' where uid=?"; template.update(sql,user.getUid()); }
注意这里需要加上两个字段:
UserService添加一个方法:
boolean active(String code);
UserServiceImpl:
/** * 激活用户 * @param code * @return */ @Override public boolean active(String code) { //根据激活码查询用户对象 User user = userDao.findByCode(code); if (user!=null){ //调用dao的修改激活状态的方法 userDao.updateStatus(user); return true; }else { return false; } }
查看邮件点击激活就会跳转页面
点击登录会跳转到登录页面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix