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

文章详细描述了一个JavaWeb应用中UserServlet如何处理用户激活过程,包括从接收激活码到调用Service进行账户激活,并通过JSP页面展示相应的提示信息。
摘要由CSDN通过智能技术生成

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

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

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
195)]

[外链图片转存中…(img-QpcpMaWe-1714872427195)]

[外链图片转存中…(img-MJ5gA26o-1714872427196)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值