电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Springboot+Thymeleaf+Jpa實現登錄功能(附源碼)

瀏覽:116日期:2023-03-10 18:04:31
目錄前言具體實現配置文件application.yml的代碼Po(實體)層代碼(User.java)Dao(數據庫操作)層代碼(UserDao.java)Service(服務)層代碼驗證碼功能前言

最近有學習到關于Springboot+Thymeleaf+Jpa的綜合運用知識,因此想寫一個簡單的登錄界面來嘗試一下,以下將展示具體流程

具體實現

首先要創建一個springboot項目

Springboot+Thymeleaf+Jpa實現登錄功能(附源碼)

添加以下依賴項

Springboot+Thymeleaf+Jpa實現登錄功能(附源碼)

pom.xml代碼

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.5</version><relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo1</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo1</name> <description>Demo project for Spring Boot</description> <properties><java.version>1.8</java.version> </properties> <dependencies><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency> </dependencies> <build><plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin></plugins> </build></project>配置文件application.yml的代碼

在mysql://localhost:3306/后更改為自己的數據庫名字,另外username和password同樣更改為自己數據庫的用戶名和密碼

spring: thymeleaf: mode: HTML datasource: url: jdbc:mysql://localhost:3306/demo1?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root jpa: hibernate: ddl-auto: update show-sql: truePo(實體)層代碼(User.java)

建立一個簡單的用戶類,里面包含id主鍵(用jpa寫po層必須要有主鍵用@id注解)

@Entitypublic class User { @Id private Integer id; private String name; private String password; public Integer getId() {return id; } public void setId(Integer id) {this.id = id; } public String getName() {return name; } public void setName(String name) {this.name = name; } public String getPassword() {return password; } public void setPassword(String password) {this.password = password; } @Override public String toString() {return 'User{' +'id=' + id +', name=’' + name + ’’’ +', password=’' + password + ’’’ +’}’; }}Dao(數據庫操作)層代碼(UserDao.java)

創建一個接口繼承jpa的數據庫操作<>里第一個參數,代表要操作的具體哪一個Po層,第二個參數代表這個Po層的主鍵類型寫了一個方法(也就是JPA最香的地方,可以通過簡單的名字對應關系進行sql的查找)通過name和password查找一個用戶

public interface UserDao extends JpaRepository<User,Integer> { User findByNameAndPassword(String name,String password);}Service(服務)層代碼

Service層接口(Userservice.java)

public interface UserService { User finduser(String name,String password);}

Service層具體實現(UserServiceimpl.java)

@Servicepublic class UserServiceImpl implements UserService { @Autowired UserDao userDao; @Override public User finduser(String name, String password) {return userDao.findByNameAndPassword(name,password); }}驗證碼功能

因為要用到了驗證碼的實現功能,所以采取了一位大佬的驗證碼生成的操作進行集成它的工具類 VerifyCode.java以及CaptchaController.java本博客就不貼了,移步大佬博客進行使用即可參考文章(關于驗證碼)

Controller(控制)層代碼(LoginController.java)

@Controllerpublic class LoginController { @Autowired UserService userService; @RequestMapping('/') public String login() {return 'login'; } @RequestMapping('/dologin') public String dologin(User user, HttpSession session, String verifycode, Model model) {User user1=userService.finduser(user.getName(), user.getPassword());String code= (String) session.getAttribute('verifyCode');if(user1!=null&&code.equalsIgnoreCase(verifycode)){ model.addAttribute('message','成功'); return 'enter';}else{ model.addAttribute('message','失敗'); return 'enter';} }}

Html頁面代碼

注意三個input里面的name屬性,很多初學者(包括我)會好奇Controller是怎么獲取網頁上輸入的具體的值?實際上就是通過name屬性比如說第一個參數user,因為它里面有user.name和user.password屬性,因此可以通過在html里進行對name屬性的更改來實現數據的尋找,第二個參數verifycode也是一樣的道理注意驗證碼后的input框的name屬性是verifycode,第三個屬性model也是常用屬性,此處是為了在頁面上進行具體的消息顯示

public String dologin(User user, HttpSession session, String verifycode, Model model)

登錄頁面(login.html)

<!DOCTYPE html><html lang='en' xmlns:th='http://www.w3.org/1999/xhtml'><head> <meta charset='UTF-8'> <title>Title</title></head><body> <form action='/dologin'> <div> <span> 名字: </span> <input type='text' name='name' > </div> <div><span> 密碼:</span><input type='password' name='password' > </div> <div><span> 驗證碼</span><input type='text' name='verifycode'> </div> <div><a href='javascript:void(0);' rel='external nofollow' > <img th:src='http://www.hdgsjgj.cn/bcjs/@{getVerifyCode}' onclick='changeCode()' /></a> </div> <div> <button type='submit'>登錄</button> </div> </form> <script src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'></script> <script> function changeCode() { const src = 'http://www.hdgsjgj.cn/getVerifyCode?' + new Date().getTime(); //加時間戳,防止瀏覽器利用緩存 $(’.verifyCode’).attr('src', src); } </script></body></html>

判斷登錄是否成功的頁面(enter.html)

通過Thymeleaf的表達式,對message進行取值,來反應登錄是否成功

model.addAttribute('message','成功');model.addAttribute('message','失敗');

<!DOCTYPE html><html lang='en' xmlns:th='http://www.w3.org/1999/xhtml'><head> <meta charset='UTF-8'> <title>Title</title></head><body> <h2 th:text='${message}'> 登錄成功 </h2></body></html>

最后的項目目錄結構

Springboot+Thymeleaf+Jpa實現登錄功能(附源碼)

到此這篇關于Springboot+Thymeleaf+Jpa實現登錄功能(附源碼)的文章就介紹到這了,更多相關Springboot Thymeleaf Jpa登錄內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 电主轴,车床电磨头,变频制动电机-博山鸿达特种电机 | 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 诗词大全-古诗名句 - 古诗词赏析 | 光环国际-新三板公司_股票代码:838504 | 事迹材料_个人事迹名人励志故事| 纯化水设备-EDI-制药-实验室-二级反渗透-高纯水|超纯水设备 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 迪威娱乐|迪威娱乐客服|18183620002| 广东教师资格网-广东教师资格证考试网 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 机械加工_绞车配件_立式离心机_减速机-洛阳三永机械厂 | 东莞喷砂机-喷砂机-喷砂机配件-喷砂器材-喷砂加工-东莞市协帆喷砂机械设备有限公司 | 走心机厂家,数控走心机-台州博城智能科技有限公司 | 深圳湾1号房价_深圳湾1号二手房源| 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 清管器,管道清管器,聚氨酯发泡球,清管球 - 承德嘉拓设备 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | 考试试题_试卷及答案_诗词单词成语 - 优易学 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 东莞注册公司-代办营业执照-东莞公司注册代理记账-极刻财税 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 北京百度网站优化|北京网站建设公司-百谷网络科技 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 |