Java Web 网络商城案例演示五(用户激活)
发布日期:2021-06-29 15:01:11 浏览次数:2 分类:技术文章

本文共 7266 字,大约阅读时间需要 24 分钟。

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

1、用户激活

2、登录
3、退出
4、抽取公共页面
5、查询所有分类
6、首页热门商品_最新商品显示
7、商品详情显示
8、基础分页操作
9、首页分类商品带分页查询

开发通用步骤:

1、准备工作
2、Servlet
3、service
4、Dao
5、最终的jsp页面

1、用户激活

原理:

在这里插入图片描述
步骤实现
1、准备工作(忽略)
用户点击了邮箱当中激活链接,向服务端发送method=active&code=15514444(随机生成激活码)
2、UserServlet—》 active
获取到激活码
调用service功能,对账户进行激活操作
进行信息的提示(成功,失败)
3、service dao
4、/jsp/login.jsp
获取到注册成功提示信息。

Servlet实现激活并跳转

package cn.itzheng.store.web.servlet;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.sql.SQLException;import java.util.Iterator;import java.util.Map;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
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); }}

在login.jsp页面里面稍作改动

会员登录USER LOGIN					
${
msg }

转载地址:https://code100.blog.csdn.net/article/details/104880484 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计算机二级C语言公共基础知识,以及习题总结(五)数据库设计基础
下一篇:javaWeb发送邮件报错,JAVAEmail工具错误java.lang.ClassNotFoundException: javax.activation.DataSource

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月03日 09时19分39秒