邮件激活

发送邮件

生成授权码:

打开QQ邮箱

 

 

 在MailUtils工具类中设置:

 

 执行MailUtils工具类中的main方法:

 

 

 

 

 

 

点击激活分析

 

 

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());
        //判断u是否为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;
    }
}
复制代码

 

 

激活代码实现

ActiveUserServlet类:

复制代码
@WebServlet("/activeUserServlet")
public class ActiveUserServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1、获取激活码
        String code = request.getParameter("code");
        if (code!=null){
            //2、调用service完成激活
            UserService service = new UserServiceImpl();
            boolean flag = service.active(code);

            //3、判断标记
            String msg = null;
            if (flag){
                msg = "激活成功,请<a href='login.html'>登录</a>";
            }else {
                msg = "激活失败,请联系管理员";
            }
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().write(msg);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
复制代码

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;
        }
    }
复制代码

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.class), code);
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
        return user;
    }

    @Override
    public void updateStatus(User user) {
        String sql = "update tab_user set status = 'Y' where uid = ?";
        template.update(sql,user.getUid());
    }
复制代码

修改UserDaoImpl实现类中的代码:

复制代码
@Override
    public void save(User user) {
        //1、定义sql
        String sql = "insert into tab_user(username,password,name,birthday,sex,telephone,email,status,code) values(?,?,?,?,?,?,?,?,?)";
        //2、执行sql
        template.update(sql,user.getUsername(),user.getPassword(),user.getName(),user.getBirthday()
                        ,user.getSex(),user.getTelephone(),user.getEmail(),user.getStatus(),user.getCode());

    }
复制代码

 

posted @   xjw12345  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示