ssm項(xiàng)目session使用及其作用域問題
這兩天由于自己在前端用到ajax發(fā)起異步更新請求,發(fā)現(xiàn)ajax會暴露后端的接口地址,這個(gè)問題當(dāng)然是避免不了的啦,前端都是明文。可憐于是就在百度、谷歌、QQ群里各種查詢各種提問題,都說只能通過安全驗(yàn)證去解決問題,作為新手第一個(gè)選擇的當(dāng)然是session啦,網(wǎng)上還有token驗(yàn)證、shrio框架等,有興趣的朋友可以網(wǎng)上搜尋教程學(xué)習(xí)。
session是存在服務(wù)器的一種緩存機(jī)制,可以驗(yàn)證用戶是否已經(jīng)登錄過了。我把自己學(xué)到的寫上來,可以讓新手少走彎曲路,直接上代碼~
第一、在SSM的登錄接口參數(shù)里需要加入 HttpServletRequest request 請求,用來獲取請求攜帶的session
第二、登錄接口內(nèi)代碼進(jìn)行session設(shè)置,HttpSession session = request.getSession(true); //這句是獲取session,true是表示如果沒有則新建一個(gè)session,可以不用填
session.setAttribute("logined","success"); //這句話是寫入一個(gè)標(biāo)識,你也可以把登錄的賬號設(shè)置在session里面,防止發(fā)起修改請求時(shí)惡意篡改另一個(gè)帳號的資料。
第三、如何在接口驗(yàn)證呢?同樣需要帶HttpServletRequest request參數(shù)請求用于獲取客戶端發(fā)起http請求所攜帶的session,HttpSession session = request.getSession(); session.getAttribute("logined")則讀取是否有l(wèi)ogined這個(gè)key,如果沒有說明沒有登錄過,就不給請求內(nèi)容,直接返回信息提醒用戶登錄。
ssm項(xiàng)目session作用域問題
描述:用戶登錄系統(tǒng)成功后把該用戶的相關(guān)信息放進(jìn)一個(gè)session域中方便調(diào)用,并取名為xx,
當(dāng)用戶登錄進(jìn)入此系統(tǒng)之后要修改個(gè)人信息,修改完之后,將用戶在前臺頁面修改后的個(gè)人信息重新塞到這個(gè)session域中,覆蓋之前的session,這樣用戶當(dāng)再次登錄時(shí)或者查看時(shí)就是他修改之后的信息。
分析:當(dāng)用戶修改完個(gè)人信息之后想要再修改個(gè)人登錄密碼(修改個(gè)人信息和修改個(gè)人密碼不在同一頁面),此時(shí)就會提示輸入的舊密碼錯(cuò)誤,因?yàn)樾薷膫€(gè)人信息的時(shí)候并沒有個(gè)人密碼,也就是在用戶修改完將自己的信息塞進(jìn)session的時(shí)候,個(gè)人密碼封裝進(jìn)去的就是空值了,此時(shí)就取不到用戶登錄的真正密碼。
解決辦法:若想實(shí)現(xiàn)修改完個(gè)人信息之后順利的修改個(gè)人密碼,就要在修改個(gè)人信息的頁面加上一個(gè)用戶密碼的隱藏域。這樣個(gè)人登錄密碼也會隨著用戶修改的信息封裝進(jìn)對象,唄=被塞進(jìn)session域中,這樣可以在修改密碼時(shí)調(diào)用session域中的內(nèi)推,密碼就不會為空了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟記錄
這篇文章主要給大家介紹了關(guān)于使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟,Spring?MVC是一種基于MVC模式的框架,它是Spring框架的一部分,它提供了一種更簡單和更有效的方式來構(gòu)建Web應(yīng)用程序,需要的朋友可以參考下2024-05-05
@FeignClient注解中屬性contextId的使用說明
這篇文章主要介紹了@FeignClient注解中屬性contextId的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
idea中打開項(xiàng)目時(shí)import project和open區(qū)別詳解
本文主要介紹了idea中打開項(xiàng)目時(shí)import project和open區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Unity2019-2020 個(gè)人版官方免費(fèi)激活詳細(xì)方法
這篇文章主要介紹了Unity2019-2020 個(gè)人版官方免費(fèi)激活詳細(xì)方法,激活方法分位兩種一種是激活新許可證,一種是手動激活,感興趣的朋友跟隨小編一起看看吧2021-04-04
Mybatis foreach用法解析--對于list和array
這篇文章主要介紹了Mybatis foreach用法解析--對于list和array,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

