• 【项目实战】---用户激活


           在前面的博客中,小编主要结合SSH网上商城这个项目,简单的介绍了怎样实现邮件发送的这个功能。邮件发送了。接下来就是激活了,为什么呢?如今大多站点都要通过对账号进行激活。然后才干注冊成功,这是防止恶性注冊的措施,仅仅要在注冊账号时所填写的邮箱找到注冊站点发来的邮件。并点击激活链接就能够完毕激活。在上篇博客中。激活邮件已经发送完毕。接下来要做的就是点击邮箱里面的激活邮件。完毕激活实现登录。那么这个功能该怎样实现呢?今天这篇博客。小编就主要简单的来介绍一下怎样实现用户激活这个功能。希望对有须要的小伙伴有帮助,还请各位大牛多多不吝赐教哦`(*∩_∩*)′!

            首先第一步,我们在UserAction.java类里面编写一个用户激活的方法,代码例如以下所看到的:

            

    /**
    	 * 用户激活的方法
    	 * author 丁国华
    	 */
    	public String active(){
    		//依据激活码查询用户:
    		User existUser=userService.findByCode(user.getCode());
    		//推断
    		if(existUser==null){
    			//激活码错误
    			this.addActionMessage("激活失败:激活码错误!");
    		}else{
    			//激活成功
    			//改动用户的状态
    			existUser.setState(1);
    			existUser.setCode(null);
    			userService.update(existUser);
    			this.addActionMessage("激活成功:请去登录!");
    			
    		}
    		return "msg";
    		
    		
    	}
          接着,第二步,我们来编写UserService.java类中方法。依据激活码查询用户,详细代码例如以下所看到的:

    package cn.itcast.shop.user.service;
    
    import org.springframework.transaction.annotation.Transactional;
    
    import cn.itcast.shop.user.dao.UserDao;
    import cn.itcast.shop.user.vo.User;
    import cn.itcast.shop.utils.MailUitls;
    import cn.itcast.shop.utils.UUIDUtils;
    
    /**
     * 用户模块业务层代码
     * @author 丁国华
     *
     */
    
    @Transactional
    
    public class UserService {
    	
    	//注入UserDao
    	private UserDao userDao;
    	
    	public void setUserDao(UserDao userDao){
    		this.userDao =userDao;
    		
    		
    	}
    	
    	//按用户名查询用户的方法
    	public User findByUsername (String username){
    		return userDao.findByUsername(username);
    	}
    
    	//业务层完毕用户注冊代码
    	public void save(User user) {
    		//将数据存入到数据库
    		user.setState(0); //0代表用户激活  1代表用户已经激活
    		String code = UUIDUtils.getUUID()+UUIDUtils.getUUID();
    		user.setCode(code);
    		userDao.save(user);
    		
    		//发送激活邮件
    		MailUitls.sendMail(user.getEmail(), code);
    		
    		
    	}
    
    	//业务层依据激活码查询用户
    	public User findByCode(String code) {
    		
    		return userDao.findByCode(code);
    		
    		
    		    
    	}
        //改动用户的状态的方法  
    	public void update(User existUser) {
    		userDao.update(existUser);
    		
    	}
    
    }
    
          接着,第三步,我们来编写UserDao.java类中的方法。详细代码例如以下所看到的:

    package cn.itcast.shop.user.dao;
    
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    
    import java.util.List;
    
    import cn.itcast.shop.user.vo.User;
    
    /**
     * 用户模块持久层代码
     * @author 丁国华
     *
     */
    
    public class UserDao extends  HibernateDaoSupport {
    	
    	//按名次查询是否有该用户
    	public User findByUsername (String username){
    		String hql ="from User where username= ?

    "; List <User> list=this.getHibernateTemplate().find(hql,username); if(list !=null && list.size() > 0){ return list.get(0); } return null; } //注冊用户存入数据库代码实现 public void save(User user) { // TODO Auto-generated method stub this.getHibernateTemplate().save(user); } //依据激活码查询用户 public User findByCode(String code) { String hql = "from User where code =?"; List<User> list=this.getHibernateTemplate().find(hql,code); if(list !=null && list.size() > 0){ return list.get(0); } return null; } //改动用户状态的方法 public void update(User existUser) { this.getHibernateTemplate().update(existUser); } }

          至此。我们的代码部分就已经编写完毕了,我们来看一下执行效果,首先我们来注冊一个用户,例如以下图所看到的:

           
           点击允许下面协议并注冊。出现例如以下界面:

           

           接着,来看一下小编的邮箱是否收到激活邮件,例如以下图所看到的:

           

           点击激活链接。我们来看一下会有怎么样的奇迹nie。例如以下图所看到的:

           

           小编寄语:该博文。小编主要简介了怎样激活用户,总的来说,实现的思路就是在邮箱client中点击激活链接,然后依据传递激活码进行用户查询,假设用户不为空,我们就改动用户的状态;假设用户为空,那就证明激活码被篡改了,SSH网上商城,精彩未完待续~~~~~~

  • 相关阅读:
    CPU的物理限制
    递归快还是循环(迭代)快?
    VS2010下测试程序性能瓶颈
    Qt编程之实现在QFileDialog上添加自定义的widget
    This application failed to start because it could not find or load the Qt platform plugin "windows"
    网络设备Web登录检测工具device-phamer
    Outlook数据提取工具readpst
    Xamarin无法调试Android项目
    Web应用扫描工具Wapiti
    Xamarin 2017.11.1更新
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7275395.html
Copyright © 2020-2023  润新知