邮件激活
发送邮件
生成授权码:
打开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()); }

浙公网安备 33010602011771号