springboot+html实现密码重置功能

news2025/1/18 4:31:39

目录

登录注册:

前端:

chnangePssword.html

后端:

controller:

Mapper层:

逻辑:

 

 


登录注册:

https://blog.csdn.net/m0_67930426/article/details/133849132

前端:

通过点击忘记密码跳转到密码重置页面

chnangePssword.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="/css/style.css"  type="text/css" rel="stylesheet">
</head>
<body>
<div class="control">
    <div class="item">
        <div class="active">密码重置</div>
    </div>
    <div class="content">
        <div style="display: block;">
            <form action="/user/changePassword" method="post">
                <p>请输入用户名</p>
                <input type="text" placeholder="请输入用户名" name="username"/>
                <p>请输入新密码</p>
                <input type="password" placeholder="请输入新密码"  name="password"/>
                <p>请再次输入密码</p>
                <input type="password" placeholder="请再输入密码"  name="Repassword"/>
                <br/>
                <input type="submit" value="确定"/>
            </form>
           <a href="/user/login" target="top">返回登录</a>
        </div>
    </div>
</div>
</body>
</html>

后端:

controller:

 @RequestMapping("/changePassword")
    public String changePassword(User user,Model m){
       User user1=userMapper.findUserByName(user.getUsername());
       if(user1==null) {
           m.addAttribute("msg","该用户不存在");
           return "html/changePassword";
       }
       String password=request.getParameter("password");
       if(password==null||password.isEmpty()){
           m.addAttribute("msg","密码输入时不能为空");
           return "html/changePassword";
       }
           String Repassword=request. getParameter("Repassword");
       if(Repassword==null||Repassword.isEmpty()){
           m.addAttribute("msg","密码输入时不能为空");
           return "html/changePassword";
       }
       if(!password.equals(Repassword)) {
           m.addAttribute("msg", "两次输入的密码不一致");
           return "html/changePassword";
       }
       else{
           user1.setPassword(password);
           userMapper.updateByUserName(user.getUsername(),user.getPassword());
           return "html/login";
       }
    }

}

Mapper层:

@Mapper
public interface UserMapper extends BaseMapper<User> {

    @Select(value = "select u.username,u.password from user u where u.username=#{username}")
    User findUserByName(@Param("username") String username);

    @Update(value = "update `user` u set  u.password = #{password}  where u.username=#{username}  ")
    void updateByUserName(@Param("username") String username,@Param("password") String password);


}

逻辑:

1.先判断要重置密码的用户是否在数据库中存在,如果如果存在就执行下一个操作

2.第一次填写密码时不能为空

2.第二次填写密码时(确认密码),不能为空

3.第一次填写的(password)和第二次填写的(Repassword)要相等

符合上面所有条件才可通过(返回登录)这一按钮返回到登录界面

调试:

更改前:

更改后:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1107587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

通讯协议学习之路:USART协议理论

通讯协议之路主要分为两部分&#xff0c;第一部分从理论上面讲解各类协议的通讯原理以及通讯格式&#xff0c;第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN&#xff1b;视频会发布在bilibili(UID:399951374) 一、…

把微信好友不小心删了,有什么办法找回?

常见的重新加回微信好友有以下几种&#xff1a; ①通过微信群找回&#xff0c;看有无共同的群&#xff0c;重新将对方加回来 ②通过朋友圈的动态找回 ③如果是加不久的好友&#xff0c;可以在微信新的朋友功能里重新添加 ④通过共同好友&#xff0c;让朋友圈推荐好友名片找…

一键式AI智能剪辑,轻松处理视频,释放无限创意!“

想象一下&#xff0c;您可以在几秒钟内完成一个复杂的视频剪辑&#xff0c;而无需投入大量的时间和精力。现在&#xff0c;这个梦想已经成为现实&#xff01;我们的新一代AI智能剪辑技术&#xff0c;将使视频处理变得轻松无压力。 第一步&#xff1a;首先进入好简单批量智剪主…

C#上位机序列9: 批量读写+事件广播

1. 读取配置文件及创建变量信息&#xff08;点位名称&#xff0c;地址&#xff0c;数据类型&#xff08;bool/short/int/float/long/double&#xff09;&#xff09; 2. 读任务&写任务,数据有变化时事件广播通知 using HslCommunication; using HslCommunication.Core; usi…

基于YOLOv8模型的水下目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的水下目标检测系统可用于日常生活中检测与定位鱼、水母、企鹅、海鹦、鲨鱼、海星、黄貂鱼&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统…

34 机器学习(二):数据准备|knn

文章目录 数据准备数据下载数据切割转换器估计器 kNN正常的流程网格多折交叉训练原理讲解距离度量欧式距离(Euclidean Distance)曼哈顿距离(Manhattan Distance)切比雪夫距离 (Chebyshev Distance)还有一些自定义的距离 就请读者自行研究 再识K-近邻算法API选择n邻居的思辨总结…

MySQL分组查询每组最新的一条数据(提供三种实现方法,附带三种方法查询性能比较和分析查询原理)

目录 一、前言二、注意事项三、准备SQL四、错误查询分析4.1、错误原因 五、实现方法5.1、实现方法一&#xff08;使用 LIMIT 查询&#xff09;5.2、实现方法二&#xff08;使用 DISTINCT 查询&#xff09;5.3、实现方法三&#xff08;使用 MAX(id) 查询&#xff0c;只适用于自增…

一篇文章讲明白double、float丢失精度的问题

1.背景 1.10.1 1.2000000000000002 发现上面计算的值竟然和数学计算不一致 2. 问题 计算机是通过二进制计算的&#xff0c;如果我们在二进制的视角来看待上面问题&#xff0c;就很容易发现问题了。 例如&#xff1a;把「0.1」转成二进制的表示&#xff0c;然后还原成十进制&…

846. 树的重心

输入样例 9 1 2 1 7 1 4 2 8 2 5 4 3 3 9 4 6输出样例&#xff1a; 4 分析&#xff1a;因为有n-1条边&#xff0c;所以每个点必然会连接到其他点&#xff0c;不存在孤立点&#xff0c;因此&#xff0c;我们从1-n任意点开始dfs都是可以的&#xff0c;因为无论怎么样&#xff0…

mrRobot

一、信息收集 1.访问地址 没啥信息&#xff0c;尝试扫下目录 2.目录扫描 key1 发现有wp-admin/和robots.txt robots.txt里面还拿到了一个密码字典&#xff0c;猜测是爆破wp的网站账号密码的 3.访问wp-admin/ ┌──(root&#x1f480;kali)-[~/桌面] └─# sort -u fsoci…

Java并发面试题:(六)悲观锁和乐观锁和Java内存模型和CAS原理

悲观锁和乐观锁的区别 什么是悲观锁&#xff1f; 基本上我们理解的操作前对资源加锁&#xff0c;操作完后释放锁。说的都是悲观锁。悲观锁认为所有的资源都是不安全的&#xff0c;随时会被其他线程操作、更改。所以操作资源前一定要加一把锁、防止其他线程访问。 什么是乐观锁&…

基于geojson-vt和canvas的高性能出图

概述 本文介绍基于geojson-vt和canvas&#xff0c;实现node端高性能出图。 效果 实现 1. canvas绘图 import { createCanvas } from canvasconst tileSize 256; const canvas createCanvas(tileSize, tileSize) const ctx canvas.getContext(2d)2. 处理geojson const g…

python二次开发Solidworks:圆形弹簧

目录 1、手动建模 2、python自动建模 1、手动建模 第一步​&#xff1a;草图1&#xff0c;在上视基准面画一个圆心在原点&#xff0c;直径50mm的圆​&#xff1b; 第二步​&#xff1a;草图2&#xff0c;在上视基准面画两条构造线&#xff0c;一条经过原点方向竖直&#xff0…

【jvm】虚拟机栈之局部变量表

目录 一、说明二、代码分析2.1 代码示例2.2 执行javap2.3 jclasslib插件查看 三、对slot的理解3.1 说明3.2 slot索引图3.3 实例方法的局部变量表3.4 long和double类型变量占2个slot 四、slot的重复利用4.1 说明4.2 变量c复用变量b的槽位 五、静态变量与局部变量对比 一、说明 1…

NEFU计算机网络实验一常见网络命令的使用

一、实验目的 1、理解、验证常用网络命令的原理和功能。 2、掌握常用的网络命令使用方法&#xff0c;合理使用相关命令对网络进行管理与维护。 二、实验内容 网络参数查询命令&#xff1a;IPCONFIG 网络测试命令&#xff1a;ping 路由表命令ROUTE 网络端口查询命令&…

chatglm配置

推荐看这个链接&#xff0c;有些问题解决出处https://zhuanlan.zhihu.com/p/643824521 以及这个https://blog.csdn.net/weixin_40547993/article/details/131775275 1.需要pytorch2.0&#xff0c;所以CUDA推荐11.8 ChatGLM2-6B版本要装PYTORCH2.0&#xff0c;而且要2.0.1 &a…

resultMap 和 resultType的用法和区别详解

resultMap 和 resultType的用法和区别详解 《resultMap 和 resultType的用法和区别详解》摘要引言resultType - 用法和映射示例了解resultType示例演示 resultMap - 区别、高级用法和自定义映射规则详解resultType vs. resultMap高级用法示例演示 Mybatis的CRUD操作总结参考资料…

信息保卫战:揭秘迅软DSE护航企业免受泄密之害

随着网络技术的发展&#xff0c;通过网络应用如网盘、网页、邮件、即时通讯工具传输分享文件变得越来越多&#xff0c;这些工具传输速度快&#xff0c;能够将大容量的文档快速传送给他人&#xff0c;在工作中受到许多人的青睐。 然而由这些传输工具引发的泄密事件也不断增多&am…

进程概念[下]

一、 进程优先级 0x01 什么叫进程优先级 CPU资源分配的先后顺序 0x02 为什么要有进程优先级 因为资源不足,是分配资源的一种方式,优先权高的进程有优先执行权利 0x03 查看更加详细的进程信息 ①运行代码 #include<iostream> #include<unistd.h> using na…