Springboot+Vue登錄、注冊功能(含驗證碼)(后端!)

我們首先寫一個接口,叫login!然后對傳入一個user,因為我們前端肯定是要傳過來一個user,然后我們后端返回一個user,因為我們要根據這個去校驗!我們還引入了一個hutool的一個東西,在pom文件里面引入,這樣我們就引入hutool,這樣就可以進行校驗了,然后我們繼續寫service!我們的service里面肯定根據用戶名去查詢用戶信息,看看賬號密碼能不能對上,所以我們在創建一個方法,通過username去查詢數據庫(因為username是唯一的),這樣我們就可以直接寫mapper了,mapper肯定是要返回一個User對象的,不用list,就一個user!

   <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>

基礎的架子已經搭建出來了,我們現在還要在service里面去校驗一下!我們現在要判斷一下,如果我們mapper返回回來的數據是一個空!怎么辦?也就是沒查到這個username!這個怎么辦?我們應該拋出一個自定義的異常!這個自定義異常怎么寫?

(1)我們首先創建一個文件叫GlobalException,這個文件里面寫一個方法,并且返回報錯的信息

package com.example.demo.exception;import com.example.demo.common.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;/*** 功能:* 作者:小劉* 日期:2025/3/17 21:22*/
@ControllerAdvice
public class GlobalException {@ExceptionHandler(ServiceException.class)@ResponseBodypublic Result serviceException(ServiceException e){return Result.error("500",e.getMessage());}
}

(2)創建ServiceException

package com.example.demo.exception;/*** 功能:* 作者:小劉* 日期:2025/3/17 21:28*/
public class ServiceException extends RuntimeException {public ServiceException(String msg){super(msg);}
}

這樣兩個文件就寫好了自定義異常!我們現在返滬service寫出這返回,并且補上密碼校驗

然后我們前端給后端發請求,我們在全局的main.js里面引入,這樣綁定好,我們就可以通過this.$request.post去發請求了,就不用在寫http啥啥啥的了!哈哈哈哈

發請求了,但是報錯了,為什么?因為沒寫跨域!我們現在要寫跨域問題了!

在Springboot項目里加上這個配置文件CorsConfig.java重啟之后即可實現跨域訪問,前端無需再配置跨域。直接創建文件CorsConfig ,粘貼即可!

package com.example.demo.common;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;@Configuration
public class CorsConfig {// 當前跨域請求最大有效時長。這里默認1天private static final long MAX_AGE = 24 * 60 * 60;@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.addAllowedOrigin("*"); // 1 設置訪問源地址corsConfiguration.addAllowedHeader("*"); // 2 設置訪問源請求頭corsConfiguration.addAllowedMethod("*"); // 3 設置訪問源請求方法corsConfiguration.setMaxAge(MAX_AGE);source.registerCorsConfiguration("/**", corsConfiguration); // 4 對接口配置跨域設置return new CorsFilter(source);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72506.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72506.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72506.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

馮 ? 諾依曼體系結構

馮 ? 諾依曼體系結構 一、馮 ? 諾依曼體系結構推導階段 1&#xff1a;初始計算機體系結構&#xff08;僅輸入、運算、輸出&#xff09;階段 2&#xff1a;加入控制功能&#xff0c;初步形成 CPU 概念階段 3&#xff1a;性能瓶頸與引入內存階段 4&#xff1a;最終馮諾依曼體系…

Python print() 打印多個變量時,可變對象和不可變對象的區別

先來看這段代碼&#xff1a; tmp [] print(tmp, tmp.append(1), tmp)輸出&#xff1a; [1] None [1]并不是一些人認為的 [] None [1] 這是因為列表是可變對象&#xff0c;print()打印前會先計算出所有結果&#xff0c;最后再打印出來&#xff0c;中間在列表中添加了1&#…

【數學 線性代數】差分約束

前言 C算法與數據結構 本博文代碼打包下載 什么是差分約束 x系列是變量&#xff0c;y系列是常量&#xff0c;差分系統由若干如下不等式組成。 x1-x2 < y1 x2-x3 < y2 ? \cdots ? 可能有負環的最短路 個人習慣&#xff1a;如果存在a指向b的邊&#xff0c;則a是b的…

AutoGen :使用 Swarm 構建自治型多智能體團隊

??????本人承接各類AI相關應用開發項目(包括但不限于大模型微調、RAG、AI智能體、NLP、機器學習算法、運籌優化算法、數據分析EDA等) !!!?????? 有意愿請私信!!!AutoGen 的 AgentChat 模塊提供了一種強大的方法來構建多智能體協作系統。 在之前的文章中,我們探討了…

2025人工智能“落地生花”:這六大領域正掀起顛覆性革命

——從醫療到養老&#xff0c;一場“AI”的全民狂歡正在上演 2025年的春天&#xff0c;全球科技界的熱搜被一個中國AI大模型“霸榜”——DeepSeek。從春晚的機器人熱舞到政務系統的“數字員工上崗”&#xff0c;從醫療診斷到工業煉鋼&#xff0c;這場始于春節的技術海嘯&#…

第27周JavaSpringboot git初識

Git 課程筆記 一、Git 的介紹 1. Git 的誕生背景 Git 是 Linux 內核的作者 Linus Torvalds 為了更好地管理 Linux 內核開發而創建的版本控制系統。在 Linux 內核開發初期&#xff0c;由于開發者眾多&#xff0c;協作成本很高&#xff0c;后來使用了 BitKeeper 工具來輔助協作…

藍耘智算|從靜態到動態:探索Maas平臺海螺AI圖片生成視頻功能的強大能力

文章目錄 &#x1f44f;一、技術介紹&#x1f44f;二、平臺注冊&#x1f44f;三、功能體驗&#x1f44f;四、總結 隨著人工智能技術的快速發展&#xff0c;視頻處理和生成技術已經成為了眾多行業關注的熱點。最近&#xff0c;我有機會體驗了藍耘智算平臺的Maas平海螺AI視頻產品…

解決從deepseek接口獲取的流式響應輸出到前端都是undefined的問題

你的前端 EventSource 代碼遇到了 undefined 連續輸出 的問題&#xff0c;通常是因為&#xff1a; AI 返回的內容被拆成了單個字符&#xff0c;導致前端 JSON.parse(event.data).content 獲取到的是單個字符&#xff0c;而 undefined 可能是因為某些數據塊沒有 content 字段。…

VLLM專題(二十七)—使用 Kubernetes

在Kubernetes上部署vLLM是一種可擴展且高效的方式來服務機器學習模型。本指南將引導您使用原生Kubernetes部署vLLM。 此外,您還可以使用以下任意一種方式將vLLM部署到Kubernetes: HelmInftyAI/llmazKServekubernetes-sigs/lwsmeta-llama/llama-stacksubstratusai/kubeaivllm…

前綴和 之 哈希表 之 和 的奇偶與倍數

文章目錄 930.和相同的二元子數組523.連續的子數組和 求解連續子數組的和的問題&#xff0c;常常會使用到這個前綴和的思路&#xff0c;當然當數組存在單調性的時候&#xff0c;可以考慮使用不定長滑動窗口&#xff0c;在這里解釋一下&#xff0c;何為數組的和存在這個單調性&a…

Docker Compose 和 Kubernetes(K8s)對比

Docker Compose 和 Kubernetes&#xff08;K8s&#xff09;在某些方面有相似的功能&#xff0c;但它們的 核心用途和適用場景不同。以下是它們的主要區別和聯系&#xff1a; 1. Docker Compose 和 Kubernetes 的區別 對比項Docker ComposeKubernetes&#xff08;K8s&#xff0…

晶藝代理,100V3.5A高耐壓LA1823完全替換MP9487--啟燁科技有限公司

晶藝品牌LA1823是異步降壓轉換器&#xff0c;COT控制&#xff0c;PFM工作模式, 150KHz/ 250KHz/ 450KHz &#xff0c;開關頻率可調節&#xff0c;輸入電壓4.5~100V&#xff0c;2A平均電流&#xff0c;峰值電流3.5A&#xff0c;采用ESOP8封裝。 晶藝LA1823的特性&#xff1a; 4.…

PLC控制柜在技術創新驅動中功能演進 尤勁恩科技

在智能制造體系中&#xff0c;PLC控制柜不僅承擔著傳統設備控制的基礎功能&#xff0c;更通過工業以太網、PROFIBUS等現場總線技術&#xff0c;構建起分布式控制系統&#xff08;DCS&#xff09;。這種拓撲結構使生產線具備實時數據采集、遠程監控和智能決策能力&#xff0c;顯…

【JavaEE】Spring Boot 日志

目錄 一、日志概述二、使用日志2.1 打印日志2.2 日志框架2.2.1 門面 / 外觀 模式 2.3 日志級別2.3.1 六大分類2.3.2 使用 2.4 日志級別配置2.5 日志的持久化2.6 日志文件分割2.7 日志文件格式2.8 Slf4j 簡單打印日志 一、日志概述 ?志主要是為了發現問題, 分析問題, 定位問題…

代碼隨想錄算法訓練營第34天 | 62.不同路徑 63. 不同路徑 II 整數拆分 不同的二叉搜索樹 (跳過)

62.不同路徑 62. 不同路徑 - 力扣&#xff08;LeetCode&#xff09; 本題大家掌握動態規劃的方法就可以。 數論方法 有點非主流&#xff0c;很難想到。 代碼隨想錄 視頻講解&#xff1a;動態規劃中如何初始化很重要&#xff01;| LeetCode&#xff1a;62.不同路徑_嗶哩嗶哩_b…

uniapp APP權限彈框

效果圖 第一步 新建一個頁面&#xff0c;設置透明 {"path": "pages/permissionDisc/permissionDisc","style": {"navigationBarTitleText": "","navigationStyle": "custom","app-plus": {&…

網絡安全證書培訓機構有哪些

一、前言少敘 記得剛入行的時候&#xff0c;想考一個證書來裝裝門面&#xff0c;結果發現費用太高了&#xff0c;比當時一個月的工資都高&#xff0c;感嘆網絡安全這幫人真舍得花錢&#xff0c;遂放棄。后來入職網絡安全公司&#xff0c;考了一個CISP&#xff0c;在工作中逐漸…

torch.argsorttorch.gather

文章目錄 1. 舉例說明2. pytorch 代碼 1. 舉例說明 torch.argsort 的作用是可以將矩陣中的元素進行從小到大排序&#xff0c;得到對應的序號。假設我們有一個向量a表示如下 a [ 8 , 7 , 6 , 9 , 7 ] \begin{equation} a[8,7,6,9,7] \end{equation} a[8,7,6,9,7]?? 那么從小…

JSON數據格式介紹

2.5 JSON 2.5.1.JSON格式的用途 在開發中凡是涉及到『跨平臺數據傳輸』&#xff0c;JSON格式一定是首選 2.5.2.JSON格式的說明 1.JSON數據兩端要么是{}&#xff0c;要么是[] {}定義JSON對象[]定義JSON數組 2.JSON對象的格式是&#xff1a;json {key:value,key:value,...,ke…

(性能測試)性能測試工具 2.jmeter的環境搭建 3jmeter元件和4使用實例 5jmeter元件和參數化

目錄 性能測試工具 性能測試工具 jemeter環境搭建 jmeter的常用目錄介紹 jmeter修改語言和主題--jmeter界面的漢化 jmeter元件 jmeter元件和組件的介紹 jmeter的作用域原則 jmeter的執行順序 案例&#xff1a;執行順序 jmeter使用案例 jmeter線程組的介紹 jmeter…