1. 程式人生 > 其它 >6.21筆記

6.21筆記

1L是什麼意思?

java中經常會碰到“long c = 1L”的寫法,L表示long ,long佔用8個位元組,表示範圍:-9223372036854775808 ~ 9223372036854775807
1L其實就是1。

常量後面跟這個一般是指型別,1L表示1是長整型,如果是1f 表示是float型

登入令牌Taken

首次登入成功後,會生成一個一串加密的字串。這個字串就是客戶端進行傳送登入請求的令牌。當第一次登入成功後,伺服器就生產了一個taken(本地儲存)並返回給客戶端。登入成功之後在指定時間範圍之內,直接用taken進行登入即可,無需輸入使用者名稱和密碼

其中在taken的生命週期內,每次客戶端傳送請求時taken都在請求的頭部中

特徵:

  • 無狀態,可拓展:

    如果存到session中,使用者每次想登入都要去已驗證的伺服器傳送驗證資訊,可能會造成擁堵。而使用token後,直接在客戶端儲存驗證資訊,就減輕了伺服器的壓力。token可以建立和其他程式共享的程式(Facebook和Twitter聯絡起來)

  • 支援移動裝置:

  • 跨程式呼叫

    可以介入到各種裝置和應用程式,只要使用者有一個通過了驗證的token,資料和資源就會在任何域上被請求到

  • 安全

JWT

全稱json web token 。它把使用者的資訊加密到token中,伺服器中不儲存使用者的資訊。服務值只需要生成一個金鑰,每一次驗證這個金鑰即可

<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>

使用:

D:\java_project\cqoa\ruoyi-framework\src\main\java\com\ruoyi\framework\web\service\TokenService.java

就是訪問完網站留下的和網站相關資料資訊,儲存在客戶端上。僅僅時瀏覽器實現的儲存功能

Session

類HashMap的結構,伺服器給每個客戶端分配不同的身份標籤(通常使用cookie的形式儲存在客戶端),每次客戶端傳送請求時都帶上這個身份標籤,伺服器就會進行區分

伺服器通過使用session把使用者產生的臨時資料儲存在了伺服器中,當用戶離開網站後該session會被銷燬。

HttpServletRequest

HttpServletRequest代表客戶端的請求,當客戶端通過http進行訪問伺服器時,http請求都封裝到這個物件中。

getRequestURL:返回客戶端發出請求時的完整的url

getHeader(string string):以string的形式返回請求頭部的值,如果含有多個頭部相同的頭部,值返回第一次出現的頭