基于maven的旅游网站设计之邮箱验证功能实现
程序员文章站
2023-12-23 19:26:27
...
发送邮件
邮件工具类:MailUtils,调用其中sendMail方法可以完成邮件发送。
用户点击邮件**功能实现
用户**其实就是修改用户表中的status为‘Y’
发送邮件的实现方法:
/2.1设置**码,唯一字符串
user.setCode(UuidUtil.getUuid());
//2.2设置**状态
user.setStatus("N");
userDao.save(user);
//3.**邮件发送,邮件正文?
String content="<a href='http://localhost/travel/activeUserServlet?code="+user.getCode()+"'>点击**【旅游网】</a>";
MailUtils.sendMail(user.getEmail(),content,"**邮件");
return true;
}
**代码的实现
@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);
}
}
其中所调用的Service层总的UserServiceImpl类active方法用于根据**码查询用户对象,调用Dao修改**状态,从而根据Flag的值判断**是否成功。
@Override
public boolean active(String code) {
//1.根据**码查询用户对象
User user = userDao.findByCode(code);
if(user != null){
//2.调用dao的修改**状态的方法
userDao.updateStatus(user);
return true;
}else{
return false;
}
}
Dao中所调用的UpdateStatus方法,即修改Status值为Y。
@Override
public void updateStatus(User user) {
String sql = " update tab_user set status = 'Y' where uid=?";
template.update(sql,user.getUid());
}
总结
MailUtils,调用其中sendMail方法可以完成邮件发送→用户**其实就是修改用户表中的status为‘Y’→Servelt层获取**码,根据**码查询User对象→调用Service修改**状态→底层sql语句由Dao实现