邮箱激活实现

  • 过程分析
  • 代码实现

1)过程分析

① 邮箱的激活点击链接:http://localhost:8080/store/user/active?code=xxx

② 需要在UserServlet中编写一个对/active路径的处理

  • 获取激活码
  • 调用service层完成激活
  • 页面跳转,请求转发 jsp/msg.jsp

③ UserService中创建active(String code)

  • 通过激活码获取一个用户(用户有可能为空)
  • 若不为空,则修改用户的state,将0改为1

2)代码实现

① 在UserServlet中实现对路径/user/active的处理

在servlet中处理主要有3步
1、获取激活码
2、调用service完成激活
3、请求转发到msg.jsp

/*** 用户激活* @param request* @param response* @throws IOException * @throws ServletException */
private void active(HttpServletRequest request, HttpServletResponse response) throws Exception{//1、获取激活码String code=request.getParameter("code");//2、调用service完成激活User user=userService.active(code);if(user==null) {//通过激活码没有找到用户request.setAttribute("msg", "请重新激活");}else {//添加信息request.setAttribute("msg", "激活成功");}//3、页面请求转发到msg.jsprequest.getRequestDispatcher("/jsp/msg.jsp").forward(request, response);
}
② 在UserService中编写用户激活方法active

1、通过激活码code获取一个用户
2、判断用户是否为空
3、修改用户状态0->1
4、调用dao执行修改
UserService接口:

/*** 用户激活* @param code* @return*/
User active(String code) throws Exception;

UserServiceImpl实现类:

@Override
public User active(String code) throws Exception{//1、通过code获取一个用户User user=userDao.getUserByCode(code);//2、判断用户是否为空nullif(user==null) {//2.1 用户为空--直接返回nullreturn null;}//3、修改用户状态 0->1user.setState(1);userDao.update(user);return user;
}
③ 实现UserDao

1、根据code激活码获取用户
2、修改用户
UserDao接口:

/*** 根据code激活码获取用户* @param code* @return*/
User getUserByCode(String code)  throws SQLException ;
/*** 用户修改* @param user*/
void update(User user) throws SQLException ;

UserDaoImpl:

/*** 通过激活码获取一个用户*/
@Override
public User getUserByCode(String code) throws SQLException {String sql="select * from `user` where code=? limit 1";return qr.query(sql, new BeanHandler<User>(User.class),code);
}
/*** 修改用户信息*/
@Override
public void update(User user) throws SQLException {String sql="update `user` set username=?,password=?,name=?,email=?,birthday=?,state=?,code=? where uid=?";qr.update(sql,user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),user.getBirthday(),user.getState(),null,user.getUid());
}
④ 测试邮箱激活

先把激活码后面添加一些字符,测一个不存在的激活码:

再使用正确的激活码激活测试:

08_实现用户邮箱激活相关推荐

  1. SSM登录注册和邮箱激活

    1:首先是html1的样式 <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...

  2. 发送邮件(注册用户并激活邮箱)

    发送邮件(注册用户并激活邮箱) 注册用户 并激活邮箱 的逻辑 1 获得用户数据 2 验证 非空.格式 3 验证 图形验证码 4 判断 用户是否存在,需要不存在 5 判断 邮箱是否已激活使用,需要未激活 ...

  3. Java案例-用户注册邮箱验证将邮箱激活码存入redis功能实现

    <–start–> 用户注册时,要求用户填写注册邮箱,然后后台向用户的注册邮箱中发送绑定邮件,并将激活码保存到redis中. 手机短信验证码因为时效期短,只需要将短信验证码存储到sessi ...

  4. java web 邮箱激活 与 忘记密码(重置密码)

    推荐: java后台通用权限管理系统(springboot)(https://blog.csdn.net/zwx19921215/article/details/97806078) 推荐:java 个 ...

  5. Pycharm学生用户免费激活

    Pycharm学生用户免费激活 Pychram学生账户申请 1.Free Educational Licenses 2.填写申请人信息 ---- 无法接受邮箱申请 ---- 3.邮箱确认 Pychra ...

  6. SSM框架解决QQ邮箱激活535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´及端口25被占用问题

    SSM解决阿里云服务器邮箱激活25端口被占用,通过JAVA代码调用端口465及535 SSM框架实现商城邮箱激活账号出现535问题 阿里云服务器25端口关闭问题 控制器EmailCtrl代码: 接下来 ...

  7. Java实现注册邮箱激活验证

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 RegisterValidateService.java package com.app.service.impl;import java ...

  8. php实现邮箱激活功能

    php实现邮箱激活功能 一.样例 二.文件结构 其中swiftmailer-master是第三方插件,用来发验证邮件 三.核心代码 doAction.php 响应页面 1 <?php 2 hea ...

  9. idea实现注册登录时使用QQ邮箱激活功能

    首先建立数据库,我的数据库为: CREATE TABLE user (uid varchar(11) primary key , -- 账号type int default 1, -- 类型, 1注册 ...

  10. java实现邮箱激活注册账号完整案例

    项目业务流程介绍:1.用户填写用户名,邮箱,注册密码,提交注册信息(此时还不能登录系统).2.系统通过一个已配置好的QQ邮箱账号向刚刚注册的QQ邮箱发送激活邮件,邮件内容包含激活链接.3.注册用户登录 ...

最新文章

  1. zip压缩多个文件,解压时不包含目录层级
  2. 【植物大战僵尸2】算法 笔记
  3. 一起来学ES —— 浅谈Nested结构
  4. 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)
  5. VS2013报错:错误:没有与这些操作匹配的《运算符
  6. java 1000到9999_java – 可以0.99999999999乘以四舍五入到1.0?
  7. 电动汽车又“火了” 面对频繁自燃事故 蔚来不得不这样做...
  8. java基础应用_Java基础(应用篇)
  9. 【问答集锦】联邦学习让隐私保护和海量数据学习兼得!
  10. HDU - 2047
  11. des密钥java实现_java中以DES的方式实现对称加密并提供密钥的实例
  12. 美国大数据工程师面试指南(建议收藏)
  13. linux怎么给用户777权限,linux下 chmod 777 中777这个数字是怎么出来的
  14. 业务架构师应该做些什么?
  15. codeforces 1139c Edgy Trees 【并查集 】
  16. 【报错】win键被锁怎么解锁
  17. 购房攻略—买楼返折扣、返佣金、返京东购物卡、物业费套路
  18. 基于Java实现的中文分词系统
  19. python学什么方向就业好_学习python就业方向都有哪些?
  20. 长尾关键词是什么,长尾关键词为什么很重要?

热门文章

  1. 2018_11_25_生活记录
  2. 【BZOJ 3531 Sdoi2014】旅行【动态开点线段树+树链剖分】
  3. 织梦head.html,DeDe织梦cms主要模板head区域常用调用标签
  4. Ipa-medit:针对重签名IPA的内存搜索和修复工具
  5. android 7.1 灭屏,oppocolorosv7.1怎么设置息屏时钟
  6. 基于Servlet+jsp的web计算器
  7. 获取Repeater控件里动态声称的控件的值
  8. 深入理解@Lazy注解
  9. Tomcat下ajax请求路径总结
  10. 浅谈系统如何对接社交登录之微博登录功能