基于 Spring Boot 瑞吉外賣系統開發(十五)

基于 Spring Boot 瑞吉外賣系統開發(十五)

前臺用戶登錄

在這里插入圖片描述
在登錄頁面輸入驗證碼,單擊“登錄”按鈕,頁面會攜帶輸入的手機號和驗證碼向“/user/login”發起請求。
在這里插入圖片描述
在這里插入圖片描述

定義UserMapper接口

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

定義UserService接口

public interface UserService extends IService<User> {
}

定義UserService實現類

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

定義UserController類

@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;/*** 移動端用戶登錄* @param map* @param session* @return*/@PostMapping("/login")public R<User> login(@RequestBody Map<String,String> map,HttpSession session){String phone = map.get("phone");String code = map.get("code");//TODO 驗證碼驗證//判斷當前手機號對應的用戶是否為新用戶,如果是新用戶就自動完成注冊QueryWrapper<User> query = new QueryWrapper<>();query.eq("phone",phone);User user = userService.getOne(query);if(user == null){user = new User();user.setPhone(phone);user.setStatus(1);userService.save(user);}session.setAttribute("loginUser",user);return R.success(user);}/*** 用戶退出*/@PostMapping("/loginout")public R<String> logout(HttpServletRequest request){//清理Session中保存的當前登錄員工的idrequest.getSession().removeAttribute("loginUser");return R.success("退出成功");}}

定義用戶登錄攔截器攔截請求

在config包中創建UserLoginInterceptor 攔截器

public class UserLoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {Object loginUser = request.getSession().getAttribute("loginUser");if  (loginUser == null) {//未登錄,返回登錄頁response.sendRedirect("/front/page/login.html");return  false ; //不放行}return  true ; //放行}}

配置用戶登錄攔截器

在WebMvcConfig文件中配置攔截器,設置攔截的路徑,這里只簡單設置了攔截頁面。

    @Overridepublic void addInterceptors(InterceptorRegistry registry) {//后臺員工登錄攔截器registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/backend/page/**","/backend/index.html").excludePathPatterns("/backend/page/login/login.html");//前臺用戶登錄攔截器registry.addInterceptor(new UserLoginInterceptor()).addPathPatterns("/front/page/**","/front/index.html").excludePathPatterns("/front/page/login.html");}

運行測試

輸入手機號及該驗證碼后,單擊“登錄”按鈕,會跳轉到用戶端首頁。
在這里插入圖片描述

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

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

相關文章

什么是TCP協議?它存在哪些安全挑戰?

一、TCP協議概述 TCP&#xff08;傳輸控制協議&#xff09;是互聯網中面向連接、可靠的傳輸層協議&#xff0c;主要負責在不可靠的IP層上實現數據的可靠傳輸。其核心特點包括&#xff1a; 面向連接&#xff1a;通信前需通過三次握手&#xff08;SYN-SYN/ACK-ACK&#xff09;建…

12條熱門照片提示

12條熱門照片提示 1. 賽博朋克光彩 (Cyberpunk Glow-Up) 未在文件中顯示2. 卡通化我 (Cartoonify Me) Convert this image of [your subject here] into a 3D Pixar-style cartoon clean lines, soft lighting, expressive features, and a polished render that feels cine…

Java求職面試揭秘:從Spring到微服務的技術挑戰

文章簡述 在這篇文章中&#xff0c;我們將通過一個幽默的面試場景&#xff0c;揭秘互聯網大廠Java求職者在面試中面對的技術挑戰。面試官將從Spring框架、微服務架構到大數據處理等多個維度進行提問&#xff0c;并詳細講解這些技術點的應用場景和解決方案&#xff0c;幫助小白…

用Python輸出一個文件夾的所有文件結構

輸出一個文件夾的所有目錄和文件結構 新建一個Python文件&#xff0c;輸入 這個文件表示查詢一個文件夾所有的目錄結構 import osdef print_directory_structure(root_dir):"""打印樹狀目錄結構&#xff08;優化版&#xff09;"""if not os.p…

R語言的專業網站top5推薦

李升偉 以下是學習R語言的五個頂級專業網站推薦&#xff0c;涵蓋教程、社區、資源庫和最新動態&#xff1a; 1.R項目官網 (r-project.org) R語言的官方網站&#xff0c;提供軟件下載、文檔、手冊和常見問題解答。特別適合初學者和高級用戶&#xff0c;是獲取R語言核心資源的…

IntelliJ IDEA給Controller、Service、Mapper不同文件設置不同的文件頭注釋模板、Velocity模板引擎

通過在 IntelliJ IDEA 中的 “Includes” 部分添加多個文件頭模板&#xff0c;并在 “Files” 模板中利用這些包含來實現不同類型文件的注釋。以下是為 Controller、Service、Mapper 文件設置不同文件頭的完整示例&#xff1a; 1. 設置 Includes 文件頭模板 File > Settin…

LabVIEW雙音信號互調失真測量

該VI構建實現了一套完整的雙音信號互調失真&#xff08;IMD&#xff09;測量系統。該系統通過精確控制信號生成、采集與分析流程&#xff0c;實現對被測設備&#xff08;DUT&#xff09;非線性特性的量化評估&#xff0c;可廣泛應用于通信設備、音頻系統、射頻器件等領域的研發…

56.合并區間(java)

題目描述&#xff1a; 1.先判斷給定intervals是否為空或者大小是否為1&#xff0c;是則直接返回intervals。 2.對intervals進行排序 數組形式則使用&#xff1a;Arrays.sort(intevals,(a,b)->Integer.compare(a[0],b[0])); ArrayList形式&#xff1a;intervals.sort((a,b)-…

Redis設計與實現——Redis命令參考與高級特性

Redis命令參考 數據類型相關命令 SET&#xff1a;設置鍵值&#xff0c;支持過期時間、不存在/存在條件。GET&#xff1a;獲取鍵值&#xff0c;若鍵不存在返回 nil。INCR/DECR&#xff1a;將鍵的整數值增1/減1&#xff0c;鍵不存在時初始化為0。MSET/MGET&#xff1a;批量設置…

基于 STM32 的全自動洗車監控系統設計與實現

摘要 本文提出一種基于 STM32F103RCT6 芯片的全自動洗車監控系統方案,通過多傳感器融合與智能控制算法,實現車輛檢測、洗車流程自動化及狀態遠程監控。系統集成硬件選型、電路設計、軟件流程及通信功能,可廣泛應用于智能洗車場景。 一、硬件系統設計 1. 核心芯片選型 主控…

掌握Multi-Agent實踐(七):基于AgentScope分布式模式實現多智能體高效協作[并行加速大模型輔助搜索、分布式多用戶協同辯論賽]

之前的案例都是運行在單臺機器上以單進程形式運行,受限于 Python 的全局解釋器鎖,實際只能有效利用一個 CPU 的計算資源,并且無法支持多個用戶從自己的電腦上接入同一個 Multi-Agent 應用進行交互。?為了提高運行效率并支持多用戶接入同一個應用中,AgentScope 提供了分布式…

docker-compose部署項目(springboot服務)以及基礎環境(mysql、redis等)ruoyi-ry

上傳jar 配置文件等 到目錄&#xff1a;/home/ruoyi/docker 設置權限 chmod x *.sh 開通端口&#xff08;我已經開通了&#xff09; sh ./deploy.sh port 開始構建 docker-compose build 構建成功 可以先拉取鏡像 docker pull nacos/nacos-server docker pull nginx docker …

Axure疑難雜癥:統計分析頁面引入Echarts示例動態效果

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:統計分析頁面引入Echarts示例動態效果 主要內容:echart示例引入、大小調整、數據導入 應用場景:統計分析頁面…

如何使用WordPress創建美食博客

不管你是否意識到&#xff0c;食物是我們生活的核心。有些人將其用作燃料&#xff0c;而另一些人則將食譜作為一種藝術形式呈現。如果您屬于后者&#xff0c;并且想創建一個美食博客來分享您的熱情&#xff0c;那么WordPress是一個頂級平臺。 幾乎每個話題都有一個博客利基&am…

【MySQL】庫與表的操作

一、庫的操作 1. 查看數據庫 語法&#xff1a;show databases;這里的database是要加s的 查看當前自己所處的數據庫&#xff1a;select database(); 例如下圖&#xff0c;我當前所處的數據庫就是在class1數據庫 2. 創建數據庫 語法&#xff1a;create database [if not e…

Unity3D開發AI桌面精靈/寵物系列 【六】 人物模型 語音口型同步 LipSync 、梅爾頻譜MFCC技術、支持中英文自定義編輯- 基于 C# 語言開發

Unity3D開發AI桌面精靈/寵物系列 【六】 人物模型 語音口型同步 LipSync 、梅爾頻譜MFCC技術 C# 語言開發 該系列主要介紹怎么制作AI桌面寵物的流程&#xff0c;我會從項目開始創建初期到最終可以和AI寵物進行交互為止&#xff0c;項目已經開發完成&#xff0c;我會仔細梳理一下…

MoonBit正式入駐GitCode!AI時代的編程語言新星,開啟高性能開發新紀元

在AI與編程語言深度交融的今天&#xff0c;開發者們正見證一場技術生產力的革命。由IDEA研究院基礎軟件中心傾力打造的MoonBit&#xff08;月兔&#xff09;編程語言&#xff0c;自2023年橫空出世以來&#xff0c;憑借高性能、低延遲、輕量化的特性&#xff0c;迅速成為全球開發…

LLMs:《POE報告:2025年春季人工智能模型使用趨勢》解讀

LLMs&#xff1a;《POE報告&#xff1a;2025年春季人工智能模型使用趨勢》解讀 導讀&#xff1a;2025年5月13日&#xff0c;該報告基于 Poe 平臺的用戶數據&#xff0c;分析了 2025 年春季人工智能模型的使用趨勢。報告指出&#xff0c;人工智能格局快速演變&#xff0c;通用文…

STM32 之網口資源

1 網口資源介紹 STM32F407 是 STMicroelectronics 推出的高性能 ARM Cortex-M4 微控制器&#xff0c;具備多種外設接口&#xff0c;其中包括一個 Ethernet MAC 控制器&#xff08;帶 IEEE 1588 支持&#xff09;。這意味著你可以使用 STM32F407 實現網絡通信功能&#xff08;通…

Almalinux中出現ens33 ethernet 未托管 -- lo loopback 未托管 --如何處理:

解決 AlmaLinux 中網絡接口 ens33 和 lo 顯示為“未托管”的問題 當 AlmaLinux 系統中的網絡接口&#xff08;如 ens33 和 lo&#xff09;顯示為“未托管”時&#xff0c;這意味著這些接口沒有被 NetworkManager 正常管理。以下是詳細的分析和解決方案&#xff1a; 1. 檢查 N…