Java Web 网络商城案例演示五(用户激活)

import java.util.Map.Entry;

import java.util.Set;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import org.apache.commons.beanutils.ConvertUtils;

import org.apache.commons.beanutils.converters.DateConverter;

import cn.itzheng.store.domain.User;

import cn.itzheng.store.service.UserService;

import cn.itzheng.store.service.serviceImpl.UserServiceImpl;

import cn.itzheng.store.utils.MailUtils;

import cn.itzheng.store.utils.MyBeanUtils;

import cn.itzheng.store.utils.UUIDUtils;

import cn.itzheng.store.web.base.BaseServlet;

public class UserServlet extends BaseServlet {

// jsp的method 会统一发现这里的,并发送到父类的service 方法当中

// 先执行父类的init方法和service方法,之后在执行该方法,

// BaseServlet通过this.getclass的方式获取到该类字节码文件名获取到该方法而执行该方法(执行什么方法由jsp页面传入的method来决定)

public String registUI(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// TODO Auto-generated method stub

return “/jsp/register.jsp”;

}

// userRegist

public String userRegist(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException, Exception {

// 接收业务注册功能

// 遍历map

Map<String, String[]> map = request.getParameterMap();// 获取页面上的键值对数据

User user = new User();

user.setUid(UUIDUtils.getId());

user.setState(0);

user.setCode(UUIDUtils.getCode());

MyBeanUtils.populate(user, map);// 调用MyBeanUtils的populate静态方法

System.out.println(user);

/*

  • // 1_创建时间类型的转换器 DateConverter dt = new DateConverter();//

  • 用来设置BeanUtils当中对应的获得时间的格式 // 2_设置转换的格式 dt.setPattern(“yyyy-MM-dd”); //

  • 3_注册转换器 ConvertUtils.register(dt, java.util.Date.class);

  • BeanUtils.populate(user, map);//将map当中的数据通过populate放入到user

  • System.out.println(user); Set keySet = map.keySet();//

  • 将map当中的key集合放入到keySet的set集合当中 Iterator iterator = keySet.iterator();

  • while (iterator.hasNext()) { String str = iterator.next();// 获取到每一个key

  • System.out.println(str); String[] strs = map.get(str);// 通过键获取到每一个值 for

  • (String string : strs) { System.out.println(string); } System.out.println();

  • }

*/

// 调用业务注册功能

UserService userservice = new UserServiceImpl();

try {

userservice.userRegist(user);

// 注册注册成功,向用户邮箱发送信息,跳转到提示页面

// 发送邮件

//

MailUtils.sendMail(user.getEmail(), user.getCode());

request.setAttribute(“msg”, “用户注册成功,请激活”);

} catch (Exception e) {

// 注册失败,跳转到提示页面

request.setAttribute(“msg”, “用户注册失败,请重新注册”);

}

return “/jsp/info.jsp”;

}

//

public String active(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException, SQLException {

// 获取激活码

String code = request.getParameter(“code”);

// 调用业务层激活功能

UserService userService = new UserServiceImpl();

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”;

}

// 进行激活的信息提示

}

}

package cn.itzheng.store.service;

import java.sql.SQLException;

import cn.itzheng.store.domain.User;

public interface UserService {

void userRegist(User user) throws SQLException;

boolean userActive(String code) throws SQLException;

}

package cn.itzheng.store.service.serviceImpl;

import java.sql.SQLException;

import cn.itzheng.store.dao.UserDao;

import cn.itzheng.store.dao.daoImpl.UserDaoImpl;

import cn.itzheng.store.domain.User;

import cn.itzheng.store.service.UserService;

public class UserServiceImpl implements UserService {

@Override

public void userRegist(User user) throws SQLException {

// TODO Auto-generated method stub

// 实现注册功能

UserDao userDao = new UserDaoImpl();

userDao.userRegist(user);

}

@Override

public boolean userActive(String code)throws SQLException {

// TODO Auto-generated method stub

UserDao userDao = new UserDaoImpl();

// 对DB发送select * from user where code = ?

User user = userDao.userActive(code);// 将code传入到dao层查看数据,返回该code对应的user,以方便后面操作user

if (null != user) {

// 可以根据激活码查询到一个用户

// 修改用户的状态,清除激活码

user.setState(1);

user.setCode(null);

// 对数据库执行一次真实的更新操作

//update user set username=? ,password = ? ,name = ? ,email = ? ,telephone = ? , birthday = ?,sex = ? ,state = ? ,code = ? where uid = ?

userDao.updateUser(user);

return true;

} else {

// 不可以根据激活码查询到一个用户

return false;

}

}

}

package cn.itzheng.store.dao.daoImpl;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.BeanHandler;

import cn.itzheng.store.dao.UserDao;

import cn.itzheng.store.domain.User;

import cn.itzheng.store.utils.JDBCUtils;

public class UserDaoImpl implements UserDao {

/*

  • @Override public void userRegist(User user) throws SQLException { // TODO

  • Auto-generated method stub

  • String sql=“INSERT INTO USER VALUES(?,?,?,?,?,?,?,?,?,?)”; QueryRunner qr =

  • new QueryRunner(JDBCUtils.getDataSource()); // 将user当中的数据放入到Object对象的数组当中

  • Object[] params = { user.getUid(), user.getUsername(), user.getPassword(),

  • user.getName(), user.getEmail(), user.getTelephone(), user.getBirthday(),

  • user.getSex(), user.getState(), user.getCode() }; qr.update(sql, params);//

  • 通过dbutils当中QueryRunner的update方法将数据与对应的SQL语句的问号匹配

  • }

*/

@Override

public void userRegist(User user01) throws SQLException {

String sql = “INSERT INTO USER VALUES(?,?,?,?,?,?,?,?,?,?)”;

Object[] params = { user01.getUid(), user01.getUsername(), user01.getPassword(), user01.getName(),

user01.getEmail(), user01.getTelephone(), user01.getBirthday(), user01.getSex(), user01.getState(),

user01.getCode() };

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

qr.update(sql, params);

}

// 判断是否有对应的code

@Override

public User userActive(String code) throws SQLException {

String sql=“select * from user where code =?”;

QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());

return qr.query(sql, new BeanHandler(User.class),code);

}

@Override

public void updateUser(User user01) throws SQLException {

String sql=“UPDATE USER SET username= ? ,PASSWORD=? ,NAME =? ,email =? ,telephone =? , birthday =? ,sex =? ,state= ? , CODE = ? WHERE uid=?”;

Object[] params={user01.getUsername(),user01.getPassword(),user01.getName(),user01.getEmail(),user01.getTelephone(),user01.getBirthday(),user01.getSex(),user01.getState(),user01.getCode(),user01.getUid()};

QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());

qr.update(sql,params);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值