SSH网上商城---用户激活

在前面的博客中,小编主要结合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,如下图所示:

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

时间: 2024-08-01 06:25:13

SSH网上商城---用户激活的相关文章

SSH网上商城---邮件发送

注册网站账号的时候,都需要发送激活邮件,然后让注册的用户点击激活链接方可完成注册,不过话说回来,为什么注册的时候需要发送邮件呢?为什么不注册的时候直接激活呢?一定要收一封激活帐号的邮件?网站这样做的好处是什么?又或者说这样做的目的又是什么呢?小编想到了几点,不是很完整,还请小伙伴多多指教,首先确保注册的用户使用了正确的邮箱:第二,用户密码丢失的时候,通过邮箱找回或者忘记密码的时候重置密码比较安全:第三,通过有效邮箱建立用户数据库,对流失用户可以展开二次营销.在最近的项目中,遇到这样的需求,注册的

(精编版)SSH网上商城项目讲解+源码

SSH网上商城(  源  码 密码:fnox) 1.1 前台需求分析: 1.1.1 用户模块: 注册: 1.前台JS校验: 2.使用AJAX完成对用户名异步校验: 3.后台Struts2校验: 4.验证码: 5.发送激活邮件: 6.将用户信息存入到数据库: 激活: 1.点击链接完成激活: * 根据激活码,查询数据库中是否有该用户: * 如果有:激活.(将激活码字段清空.) * 修改用户的状态: 登录: 1.输入用户名和密码:(数据校验.) 2.用户名和密码都正确同时用户状态必须是激活状态: 退出

SSH网上商城环境配置—浅析Hibernate

SSH网上商城虽然只有四天的视频,day01-04,不过边做项目边学习,还真是不容易,到现在为止已经进行了半个月了,才完成了两天的内容.其中光一个环境配置就花了十天左右的时间,包括配置文件添加.Jar包的添加等等.敲代码时再加上对开发环境的陌生,着实费了不少劲,调试也花费了好长时间,不过还好,现在已经熟悉一点了,做起来也顺手一些了,下面就简单汇总一下这里面用到的技术. SSH是集成框架,它是从三层的基础上发展而来的.三层中包括页面显示层.业务逻辑层.数据库操作层,SSH中同样也是,只不过每个层使

【SSH网上商城项目实战25】使用java email给用户发送邮件

当用户购买完商品后,我们应该向用户发送一封邮件,告诉他订单已生成之类的信息,邮箱地址是从用户的基本信息中获取,好了,首先我们来看一下Java中发送邮件的方法. 1. java中发送email的方法     在完善这个项目之前,先来回顾一下java中是如何发送邮件的,首先肯定需要发送邮件的jar包:mail.jar,导入到lib目录下,好了,下面我们先写一个普通的java程序来回顾一下java email的知识点: public class SendEmailDemo { public stati

【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布

前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响项目的部署和发布,我们可以先来玩一把,这一节主要介绍下域名空间的申请以及项目的部署和发布流程. 1. 域名空间的申请 作为一个伟大的屌丝,肯定没钱买域名空间,很自然的想到去申请个免费的,现在免费的域名空间也很多,我在福佳jsp技术网上申请了一个试用期是15天的,大家也可以去申请个玩玩,反正作为学习,这已经足够了,当然,如果要长期的肯定要付费的.注册过程我截几个图,如下: 然后下一步,最后开通如下: 建议把上面这些信息

SSH网上商城---商品详情页的制作

在前面的博文中,小编分别简单的介绍了邮件的发送以及邮件的激活,逛淘宝的小伙伴都有这样的体会,比如在搜索框中输入连衣裙这个商品的时候,会出现多种多样各种款式的连衣裙,连衣裙的信息包括价格,多少人购买,商品的名称等等,但是这些信息不够详情,我们需要了解更多的关于连衣裙的详情,点击某个商品,跳转页面,查看连衣裙的详情,以前小编逛淘宝的时候,从来都没有想过这个功能是如何实现,只知道一个劲儿的在那儿逛,小编现在接手的这个项目中就遇到这样的功能,点击商品跳转到某个商品的详情页面,这个功能该如何实现呢?不要着

【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要进入商品的详细信息页面,就像淘宝里面那样.那么每次点击都要去后台查询一下该商品的详细信息,就会发送相应的sql语句,每次刷新一下详细页面也会发sql语句,这样的话,性能肯定会受到很大的影响.那么使用Hibernate的二级缓存就可以解决这个问题. 有些人可能会想,我们可以使用重定向,这样的话,在用户第一次访问的时候把信息查出来放到session中,以后每次用户刷新就可以去session中拿了,这样就不用去数据库中

【SSH网上商城项目实战20】在线支付平台的介绍

之前已经完成了首页的显示,用户添加购物车,确认订单等功能,下面就是支付功能的开发了.用户确认了订单后会直接跳转到支付页面进行在线支付,在线支付需要第三方的接口,这一节主要介绍一些关于第三方支付的内容,从下一节开始,我们真正开发在线支付模块. 1. 在线支付介绍 在线支付是指卖方与买方通过因特网上的电子商务网站进行交易时,银行为其提供网上资金结算服务的一种业务.它为企业和个人提供了一个安全.快捷.方便的电子商务应用环境和网上资金结算工具.在线支付不仅帮助企业实现了销售款项的快速归集,缩短收款周期,

【SSH网上商城】---- 总结

SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架.集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.  Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.     轻量--在做ITOO开始,就经常听一句话:"spring是一种轻量级框架!"可是它的轻量到底体现在哪里呢? 从大小与开销两方面而言