黑馬JavaWeb【復習到哪更新到哪】

登錄認證(復習Javaweb的登錄校驗)

登錄功能

思路就是loginController->service層->mapper層,從數據庫中查找username和password是否和前端用戶提交的表單內容一致,一致就登錄成功,否則就返回登錄失敗的信息。

登錄校驗

以下是基礎部分:
為什么?
這一步是因為上一步登錄功能中有bug,如果輸入系統內部的某個網址,可以直接訪問,而不是跳轉到登錄頁面。
問題:
http每次請求都是獨立的,所以當前端是depts或者emps請求時,后端服務器不知道用戶是否登錄了,所以需要一個登陸標記和統一攔截,圖下圖,登錄后存一下登錄標記,然后請求其他頁面時,統一攔截模塊就取出登錄標記,看是否有,沒有的話就跳轉到登錄頁面。
解決方案:

  • 統一攔截技術:過濾器Filter和 攔截器Interceptor
  • 登錄標記:會話技術

在這里插入圖片描述

一、會話技術

同一個瀏覽器是一次會話,一次會話里可以有多個請求,比如登錄進去后訪問別的頁面。
在這里插入圖片描述

1.使用cookie會話跟蹤:

第一次瀏覽器向服務器發出請求的時候設置一個cookie,然后服務器將用戶數據存到里面,響應的時候返回cookie給瀏覽器,瀏覽器將cookie值存儲到本地,之后每次請求都將本地的cookie值發給服務器,然后服務器就檢查cookie的值是否存在,存在就說明登錄過了,不存在就沒登陸過。
cookie無法跨域(端口號,IP/域名,協議一個不一樣就是跨域)

2. session會話跟蹤:

session是基于cookie進行的,瀏覽器請求時,服務器生成一個session(有唯一的JsessionId),然后將JsessionId放到cookie中返回給瀏覽器,下一次請求,服務器查詢JsessionID來看是否登錄過。

cookie的例子:
在這里插入圖片描述
session的例子
在這里插入圖片描述

3.令牌技術(企業使用)

用戶登陸后生成JWT令牌,下發給客戶端,客戶端進行存儲(存LocalStorge中),每次請求時將令牌攜帶到客戶端,服務器收到請求后進行統一攔截,并獲取令牌對其進行校驗,有效則訪問對應的業務
JWT
就是對Json進行安全的封裝
在這里插入圖片描述
生成JWT令牌(Java)
在這里插入圖片描述
校驗JWT令牌(Java)
在這里插入圖片描述

三種技術對比

在這里插入圖片描述

在登錄中增加校驗功能:

在這里插入圖片描述

將令牌會存儲到LocalStorge中了(前端做)
在這里插入圖片描述

二、統一攔截技術

在這里插入圖片描述
例子:
在這里插入圖片描述
在這里插入圖片描述
Filter鏈
調用chain.doFilter
優先級按照類名的字母排序執行
在這里插入圖片描述在這里插入圖片描述

登錄校驗加過濾器

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
comcat不能識別spring的controller但是可以識別servlet的程序,spring提供了DispatcherServlet
在這里插入圖片描述
在這里插入圖片描述
Interceptor是spring提供的,攔截范圍更小,Filter攔截范圍更大

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

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

相關文章

NVMe高速傳輸之擺脫XDMA設計21:PCIe請求模塊設計(下)

在接收到請求總線接口的請求事務后,當請求類型的值為0時,表示通過PCIE硬核的配置管理接口發送請求,由于請求接口的接口和時序與配置管理接口基本一致,因此此時直接將請求接口信號驅動到配置管理接口完成請求的發送,請求…

機器學習sklearn:不純度與決策樹構建

不純度與決策樹構建不純度概念:決策樹通過不純度指標來選擇最佳分割節點和分枝方式不純度衡量節點中樣本類別的混雜程度不純度越低,節點中樣本類別越純凈,擬合效果越好常用不純度指標:信息熵(Entropy):基于信息論的概念…

rk356x IR紅外發射與接收之NEC協議

紅外接收紅外接收頭解碼器(紅外信號解碼,主要是NEC解碼)紅外發射器紅外發光二極管晶振NEC編碼組成共32位(4bit):由8位用戶碼1 8位用戶碼2 8位命令碼 8位命令碼反碼有時會存在按鍵一直按下的一幀信息&…

C++算法之單調棧

C算法中的單調棧:從入門到實戰指南 大家好!今天我們來聊聊C算法中一個超級實用的工具——單調棧。別被名字嚇到,它其實很簡單,就像排隊買奶茶一樣:隊伍總是從矮到高(或從高到矮)排得整整齊齊&a…

React入門指南——指北指南(第二節)

React 實踐:創建你的第一個待辦事項列表 在前面的章節中,我們學習了 React 的核心概念(組件、Props、State 等)。本節將通過一個實際案例——創建待辦事項列表(Todo List),幫助你鞏固這些概念,并掌握 React 中處理用戶交互、動態數據的基本方法。 案例目標 我們將構…

WAIC看點:可交付AI登場,場景智能、專屬知識將兌現下一代AI價值

7月28日,為期三天的2025世界人工智能大會(WAIC 2025)在上海落下帷幕。作為全球 AI 領域最受關注的盛會之一,今年 WAIC 聚焦 AI 關鍵命題,圍繞大模型與智能體應用、算力新基建及大數據、智能終端與具身智能、AI金融、AI…

設計模式(十一)結構型:外觀模式詳解

設計模式(十一)結構型:外觀模式詳解外觀模式(Facade Pattern)是 GoF 23 種設計模式中的結構型模式之一,其核心價值在于為一個復雜的子系統提供一個統一、簡化的高層接口,從而降低客戶端與子系統…

接口測試核心概念與實踐指南

核心概念什么是接口?軟件不同部分之間進行通信和數據交換的約定或契約。定義了:請求方 (Client/Consumer) 如何調用(方法、URL、參數)。提供方 (Server/Provider) 如何響應(數據結構、狀態碼)。雙方需要遵循…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 熱詞數量分析日期統計功能實現

大家好,我是java1234_小鋒老師,最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程,持續更新中,計劃月底更新完,感謝支持。今天講解熱詞數量分析日期統計功能實現 視頻在線地…

ICPC 2024 網絡賽(I)

M. Find the Easiest Problem 題目大意 給定所有的提交記錄&#xff0c;找到通過隊伍最多且字典序最小的題目。 解題思路 按題意模擬即可 代碼實現 #include <bits/stdc.h>using i64 long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std…

【快捷指令】ios/macos快捷指令如何調用api接口(json請求例子)

一、步驟 之前已經寫了一個【n8n】使用 n8n 創建插入數據到mysql的api&#xff08;圖解步驟&#xff09;博客,感興趣的可以看一下. 流程&#xff1a; 快捷指令調用api—開源工作流n8n上設置個快速寫數據庫的工作流 這樣就實現了記錄體重的一個快捷指令 二、步驟說明 1、…

「源力覺醒 創作者計劃」_文心大模型4.5系列開源模型,意味著什么?對開發者、對行業生態有何影響?

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄「源力…

CanMV-K230 AI學習筆記系列

在學習了一段時間CanMV-K230后&#xff0c;感覺雖然可以直接調用復雜的模型&#xff0c;但是很多環節不是很明白&#xff0c;因此希望能夠從基礎的模型開始逐漸深入學習。 下面為已經完成的一些筆記及計劃&#xff1a; 1 CanMV K230使用經驗分享 這個是剛開始學習K230時&#…

EtherCAT IGH別名(Alias)

EtherCAT 中的 Alias 是一個 16 位的數值&#xff0c;用于在拓撲結構中唯一標識從站&#xff08;除 Position 外的輔助定位方式&#xff09;IGH查看別名 “0:0”, 第一個0是別名(alias)&#xff0c;后面是位置(position) sudo ethercat slave -p 0 0 0:0 PREOP SV660_1Axi…

墨者:通過sqlmap解決SQL手工注入漏洞測試(PostgreSQL數據庫)

使用Kali Linux中的sqlmap工具進行PostgreSQL手工注入漏洞測試實戰 前言 SQL注入是Web安全中最常見的漏洞之一。本文將演示如何使用Kali Linux中的sqlmap工具對PostgreSQL數據庫進行手工注入測試&#xff0c;通過實戰案例幫助安全研究人員更好地理解漏洞原理和測試方法。 測…

Linux筆記5——常用命令-4

幫助命令man 命令&#xff08;查看命令的幫助&#xff09;注&#xff1a;C7版本中有中文解釋例&#xff1a;man lsman -f 命令 #查看命令有哪些級別的幫助&#xff0c;使用前要執行mandb生成man緩存信息&#xff0c;否則命令執行不成功man級別1.查看命令的幫助3.查看函數…

優化Linux高并發:文件描述符與端口范圍的協同調優

既然已經通過調整nofile&#xff08;最大文件描述符數量&#xff09;來支持高并發&#xff0c;為什么還需要調整net.ipv4.ip_local_port_range&#xff08;本地端口范圍&#xff09;&#xff1f;這兩個參數看似都與高并發有關&#xff0c;但它們的作用和影響范圍不同。 1. 文件…

.NET-鍵控服務依賴注入

有時候我們在服務注冊的時候會遇到這樣一個場景&#xff0c;我們的同一個接口&#xff0c;有著多個實現&#xff0c;且我們還要同時使用這些實現的時候&#xff0c;這個時候該怎么辦&#xff1f;我們可以使用鍵控服務依賴注入 鍵控服務依賴注入&#xff08;Keyed Dependency In…

VTK交互——ImageClip

概要 這段代碼https://examples.vtk.org/site/Cxx/Interaction/ImageClip/實現了一個交互式圖像裁剪工具,使用VTK庫創建了一個雙窗口界面,左側顯示原始圖像,右側顯示裁剪后的圖像。用戶可以通過拖動邊框小部件在左側圖像上選擇裁剪區域,右側窗口會實時顯示裁剪結果。 代…

【vue vapor jsx 未雨綢繆】

隨著vue3.6.0 alpha的發布&#xff0c;vapor mode進入正式版本只是時間上的問題&#xff0c;可以預見的是各個組件庫都將積極適配vapor&#xff0c;這篇文章主要側重vue中使用jsx而非SFC&#xff0c;所以不涉及template相關。目前vue官方也是提供了vue-jsx-vapor這個倉庫&#…