最新公告
  • 欢迎您光临极客文库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 用户激活

    用户激活的原理

    上一节我们最后已经收到了带有激活code的邮件,这一节我们继续完成激活功能。

    代码完善

    由于代码的注释写的很详细了,到具体实现这部分就不啰嗦了,并且今后代码只列出有增改的部分。完整代码请在文章最后下载。

    UserServlet.java

    public String active(HttpServletRequest request, HttpServletResponse response) throws Exception {
    	//获取激活码
    	String code=request.getParameter("code");
    	//调用业务层激活功能
    	UserService UserService=new UserServiceImp();
    	boolean flag=UserService.userActive(code);
    	
    	//进行激活信息提示
    	if(flag==true){
    		//用户激活成功,向request放入提示信息,转发到登录页面
    		request.setAttribute("msg", "用户激活成功,请登录!");
    		return "/jsp/login.jsp";
    	}else{
    		//用户激活失败,向request放入提示信息,转发到提示页面
    		request.setAttribute("msg", "用户激活失败,请重新激活!");
    		return  "/jsp/info.jsp";
    	}
    }
    

    UserService.java

    boolean userActive(String code)throws SQLException ;
    

    UserServiceImp.java

    @Override
    public boolean userActive(String code) throws SQLException {
    	//实现注册功能
    	UserDao UserDao=new UserDaoImp();
    	///对DB发送select * from user where code=?
    	User user=UserDao.userActive(code);
    	
    	if(null!=user){
    		//可以根据激活码查询到一个用户
    		//修改用户的状态,清除激活码
    		user.setState(1);
    		user.setCode(null);
    		//对数据库执行一次真实的更新操作  update user set state=1 , code=null where uid=?
    		UserDao.updateUser(user);
    		return  true;
    	}else{
    		//不可以根据激活码查询到一个用户
    		return false;
    	}
    }
    

    UserDao.java

    User userActive(String code)throws SQLException;
    void updateUser(User user)throws SQLException;
    

    UserDaoImp.java

    @Override
    public User userActive(String code)throws SQLException {
    	String sql="select * from user where code=?";
    	QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());
    	User user=qr.query(sql, new BeanHandler(User.class),code);
    	return user;
    }
    
    @Override
    public void updateUser(User user) throws SQLException{
    	String sql="update user set username=? , password=? ,name =? ,email=?, telephone =? ,birthday =? ,sex=? ,state=? ,code= ? where uid=?";
    	QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());
    	Object[] params={user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),user.getTelephone(),user.getBirthday(),user.getSex(),user.getState(),user.getCode(),user.getUid()};
    	qr.update(sql,params);
    }
    

    login.jsp

    第116行修改如下,用于显示我们注册成功后的信息

    ${msg}

    效果演示

    重新启动我们项目,点击之前收到的激活链接(如果链接失效了请在数据库中删除aaa用户然后重新注册),提示激活成功。

    然后查看数据库,此时state变成1,已激活状态,并且code也已经清空。

    至此我们就完成了用户注册及激活功能。

    源码下载

    [dm href=’https://www.jikewenku.com/product/1700.html’]下载地址[/dm]

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » Javaweb网上商城项目实战(9)实现用户激活功能

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    1 评论

    1. 为什么源码网址进不去,下载不了?

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者

    1 评论

    1. 为什么源码网址进不去,下载不了?

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者
    • 108会员总数(位)
    • 3695资源总数(个)
    • 3本周发布(个)
    • 0 今日发布(个)
    • 181稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级