用SpringBoot做一个web小案例实现登录

devtools/2025/3/14 15:28:29/

我们在login.html页面输入用户名和密码点击登录,请求访问到/login,然后在login方法里获取User对象,在到UserService的login方法中判断登录,来依照这个逻辑,来完成剩下的功能:

<div style="color:red;" th:text="${loginError}" th:if="${not #strings.isEmpty(loginError)}"></div><br>
<form th:action="@{/login}" method="post">用户名:<input type="text" name="username" placeholder="请输入用户名"/><br/><br/>密 码:<input type="password" name="pasword" placeholder="请输入密码"/><br/><br/><input style="margin-left:60px;" type="submit" value="登录"/>
</form>

1、在数据库中加一条记录

 2、完成UserDao接口

java">public interface UserDao extends JpaRepository<User, Integer> {
}

3、完成UserService接口和UserServiceImpl实现类

java">public interface UserService{public void add(User user);public void delete(int id);public void update(User user);public User getOneById(int id);public List<User> getAll();public Page<User> getAll(Pageable pageable);
}
@Service("userService")
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Overridepublic void add(User user) {userDao.save(user);}@Overridepublic void delete(int id) {userDao.deleteById(id);}@Overridepublic void update(User user) {userDao.saveAndFlush(user);}@Overridepublic User getOneById(int id) {return userDao.findById(id).get();}@Overridepublic List<User> getAll() {return userDao.findAll();}@Overridepublic Page<User> getAll(Pageable pageable) {return userDao.findAll(pageable);}
}

4、完成登录的逻辑

java">@PostMapping("/login")
public String login(User user) {boolean flag = false;flag = userService.login(user);if (flag) {  //放置重复提交,登录成功后,做过重定向return "redirect:/main.html";} else {return "redirect:/index.html";}
}
@Override
public boolean login(User user) {User u = null;if(!StringUtils.isEmpty(user.getUsername())){u = userDao.getUserByUsername(user.getUsername());}if(u==null) return false;if(user.getPasword().equals(u.getPasword())){return true;}else {return false;}
}


http://www.ppmy.cn/devtools/167056.html

相关文章

基于单片机的智能电表设计(论文+源码)

1 系统整体方案设计 本课题为基于单片机的电子式单项智能电表&#xff0c;在此设计如图2.1所示的系统总体架构&#xff0c;其采用STM32单片机作为主控制器&#xff0c;搭配外设HLW8032模块实现对电压&#xff0c;电流&#xff0c;功率因数&#xff0c;电能消耗等参数进行检测&…

Linux笔记之通配符和正则表达式的区别

Linux笔记之通配符和正则表达式的区别 code review! 参考笔记 1.Linux笔记之通配符和正则表达式的区别 2.C++笔记之C语言中的换行符和转义符 文章目录 Linux笔记之通配符和正则表达式的区别1.通配符概念2.通配符和正则表达式的区别3.C++或C语言中有没有通配符?4.Linux Bash脚…

什么是WMS仓库系统?企业如何选择WMS?浩方动力科技

浩方动力科技-浩方软件认为&#xff0c;仓库管理系统&#xff08;WMS&#xff09;是一个用于管理仓库运营的软件系统。在现代企业的仓库运营中起着至关重要的作用&#xff0c;它是实现仓库高效管理、降低成本、提高服务质量的重要工具。而浩方WMS仓库管理系统列位于浩方企业erp…

【社区投稿】深入再谈智能指针、AsRef引用与Borrow借用

深入再谈智能指针、AsRef引用与Borrow借用 这是一个具有深度的技术主题。每次重温其理论知识&#xff0c;都会有新的领悟。大约 2 年前&#xff0c;我曾就这一技术方向撰写过另一篇短文《从类型转换视角&#xff0c;浅谈Deref<Target T>, AsRef<T>, Borrow<T&g…

鸿蒙编译框架插件HvigorPlugin接口的用法介绍

鸿蒙系统中HvigorPlugin接口实现自定义编译插件&#xff0c;实现编译前后自定义功能。 在鸿蒙&#xff08;HarmonyOS&#xff09;开发中&#xff0c;HvigorPlugin 是用于扩展 Hvigor 构建工具功能的接口。通过实现此接口&#xff0c;开发者可以自定义构建任务、修改构建流程或…

Websocket的基本使用

1. WebSocket WebSocket 是一种在单个TCP连接上进行全双工通信的协议&#xff0c;它在现代 Web 开发和网络应用中发挥着重要作用。在 WebSocket 出现之前&#xff0c;实现服务器与客户端实时通信主要采用轮询Polling和长轮询Long - Polling等技术。轮询是客户端定时向服务器发…

前端构建工具进化论:从Grunt到Turbopack的十年征程

前端构建工具进化论&#xff1a;从Grunt到Turbopack的十年征程 一、石器时代&#xff1a;任务自动化工具&#xff08;2012-2014&#xff09; 1.1 Grunt&#xff1a;首个主流构建工具 // Gruntfile.js 典型配置 module.exports function(grunt) {grunt.initConfig({concat: {…

数据结构与算法:动态规划dp:子序列相关力扣题(下):392. 判断子序列、115.不同的子序列

392. 判断子序列 1.套最长公共子序列问题的板子 class Solution:def isSubsequence(self, s: str, t: str) -> bool:"""最长公共子序列长度是否len(s)&#xff0c;是就是true&#xff0c;否就是falsedp[i][j]考虑以s[i-1]&#xff0c;t[j-1]的最长公共子序…