springboot+html实现密码重置功能

目录

登录注册:

前端:

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)要相等

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

调试:

更改前:

更改后:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,在pom.xml文件中添加redis和quartz依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dependency> ``` 然后在application.properties文件中添加redis和quartz的配置: ```properties spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= spring.redis.database=0 # Quartz Configuration org.quartz.scheduler.instanceName = QuartzScheduler org.quartz.scheduler.instanceId = AUTO org.quartz.threadPool.threadCount = 10 ``` 接着,创建一个RedisService类来操作Redis: ```java @Service public class RedisService { @Autowired private RedisTemplate<String, Object> redisTemplate; public Long incr(String key) { return redisTemplate.opsForValue().increment(key); } public Long decr(String key) { return redisTemplate.opsForValue().decrement(key); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } } ``` 然后,创建一个LikeJob类来定时将点赞次数写入数据库: ```java public class LikeJob implements Job { @Autowired private RedisService redisService; @Autowired private LikeService likeService; @Override public void execute(JobExecutionContext context) throws JobExecutionException { Object likeCount = redisService.get("like_count"); if (likeCount != null) { int count = Integer.parseInt(likeCount.toString()); likeService.writeLikeCount(count); redisService.set("like_count", 0); } } } ``` 最后,创建一个LikeController类来接收点赞请求: ```java @RestController public class LikeController { @Autowired private RedisService redisService; @GetMapping("/like") public String like() { redisService.incr("like_count"); return "success"; } } ``` 这样,每次访问 /like 接口时,Redis中的like_count计数器就会加1,而定时任务会在固定时间将计数器的值写入数据库,并将计数器重置为0。这样就实现了点赞功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值