用户模块之激活功能完成 | 学习笔记

简介: 快速学习用户模块之激活功能完成

开发者学堂课程【Java Web项目实战2:图书商城用户模块之激活功能完成】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/35/detail/768


用户模块之激活功能完成


内容介绍:

一、什么是模板

二、可变参数

三、占位符举例

四、 用户激活流程

五、按激活码查询

六、修改指定用户的指定状态

七、激活功能

 

一、什么是模板

包含了占位符的字符串就是模板!


二、 可变参数

需要指定模板中的占位符的值!有几个占位符就要提供几个参数。


三、占位符举例

例如:String s=Message.format (“{0}或{1}错误!“,”用户名“,”密码“);

——用户名或密码错误!


四、用户激活流程

UserServlet#active()

1.获取参数:激活码

2.使用激活码来调用 service#active(String code) 方法

>保存异常信息到 reqeust 中

>转发到 msg.jsp

3.保存激活成功信息到 reqeust 中

4.转发到 msg.jsp


UserService#active(String code)

1.使用 code 去查询数据库,得到 User 对象

>如果数据库返回的是 null ,抛出异常

2.查看用户的状态

> true : 抛出异常

>false : 修改用户的状态为 true


UserDao

1. User findByCode(String code)

2. void updateState(String uid, boolean state)


msg.jsp


五、按激活码查询

public User findByCode(String code){

try {

String sql="select * from tb_user where code=?";

return qr.query(sql,new Beanhandler<User>(User.class),code);

} catch(SQLException e) {

throw new RuntimeExceptiop(e);

}

}


六、 修改指定用户的指定状态

* @param uid

* @param state

*/

public void updatestate(String uid, boolean state) (

try {

String sql = "update tb_user set state=? where uid=?";qr.update(sql,state,uid);

} catch(SQLException e) {

throw new RuntimeException(e);

}

}

}


七、激活功能

* @throws UserException

public void active(String code) throws UserException {

/*

*1.使用code查询数据库,得到user

User user = userDao.findByCode(code);

*2.如果user不存在,说明激活码错误

if(user==null)throw new UserException("激活码无效!");

*3.校验用户的状态是否为未激活状态,如果已激活,说明是二次激活,抛出异常

if(user.isstate())throw new UserException("您已经激活过了,不要再激活了");

*4.修改用户的状态

userDao.updatestate(user.getUid(),true);

*激活功能

* @param request

*@param response*

* @return

*@throws ServletException

* @throws IOException

*/

public String active(HttpServletRequest request,HttpservletResponse response)

throws ServletException,IOException {

*1.获取参数激活码

*2.调用service方法完成激活

*>保存异常信息到request域,转发到msg-jsp

*3.保存成功信息到xequest域,转发到msg-jsp

String code = request.getParameter("code");

try {

userService.active(code);

request.setAttribute("msg”,"恭喜,您激活成功了!请马上登录!");

} catch (UserException e) {

request.setAttribute("msg",e.getMessage());

}

return"f:/jsps";

相关文章
|
Kubernetes 调度 C++
Kubernetes vs Docker Swarm:容器编排工具的比较与选择
在当今云计算时代,容器技术的应用越来越广泛。而在众多容器编排工具中,Kubernetes和Docker Swarm是两个备受关注的竞争者。本文将深入比较这两个工具的特点、优势和劣势,帮助读者更好地选择适合自己的容器编排解决方案。
|
存储 移动开发 开发框架
使用UniApp实现视频数组自动下载与播放功能:一步步指导
使用UniApp实现视频数组自动下载与播放功能:一步步指导
463 0
|
12月前
|
前端开发 JavaScript 编译器
2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
【10月更文挑战第11天】2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
2260 0
2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
|
Java 测试技术 API
云效流水线构建gradle项目失败提示gradle版本过低如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
549 0
|
Kubernetes 应用服务中间件 nginx
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)(上)
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)
51900 30
|
11月前
|
负载均衡 数据可视化 API
像素流送api ue多人访问需要什么显卡服务器
本文总结了关于像素流送技术的五大常见问题,包括是否支持Unity模型推流、UE多人访问的最大并发数、所需服务器配置、稳定性问题及API支持情况,旨在帮助开发者更好地理解和应用这一技术。
398 1
|
11月前
|
监控 数据可视化 BI
服务器监控软件Zabbix
【10月更文挑战第19天】
174 6
|
Java 索引
【Java集合类面试九】、介绍一下HashMap的扩容机制
HashMap的扩容机制包括初始容量16,以2的次方进行扩充,使用负载因子0.75判断是否扩容,以及链表长度达到阈值时转换为红黑树,以优化性能。
【Java集合类面试九】、介绍一下HashMap的扩容机制
|
人工智能 前端开发 PyTorch
AI加速引擎PAI-TorchAcc:整体介绍与性能概述
PAI-TorchAcc(Torch Accelerator)是阿里云人工智能平台PAI开发的Pytorch上的大模型训练加速框架。PAI-TorchAcc提供了一套基于Pytorch的简洁、易用的接口,无需进行模型转换就可以无缝地接入HuggingFace上的模型,并用多种分布式策略进行训练加速。本文详细介绍PAI-TorchAcc的产品能力与性能。
|
XML 前端开发 Java
Spring Boot中怎么使用BPMN
在Spring Boot中集成BPMN工作流,如Camunda,能实现业务流程自动化。以请假流程为例,步骤包括:创建Spring Boot项目并添加Camunda依赖;使用Camunda Modeler设计请假流程,涵盖提交申请、经理审批、HR记录及流程完成阶段;保存BPMN文件至`src/main/resources`目录,以便Camunda自动部署;实现流程逻辑,如通过REST API启动流程实例,并传递请假请求数据。整个过程展示了BPMN流程从设计到部署的完整周期,使业务流程自动化变得高效且直接。 **注意:**摘要已压缩至240字符内,部分内容被省略。
934 2
Spring Boot中怎么使用BPMN