更新時間:2022-03-25 10:12:30 來源:動力節點 瀏覽1597次
很多初學Java的小伙伴對SpringMVC獲取session的方法還不是很了解,下面就由小編來給大家進行介紹。
第一種:將HttpSession作為Spring MVC的方法參數傳入,直接獲取。
直接在Spring MVC 的方法中將參數傳入:
public void getSessionAction(HttpSession session){
}
第二種:將HttpServletRequest作為Spring MVC 的方法參數,間接獲取
先是獲取到request,然后通過request間接的獲取到session,代碼如下:
public void getSessionAction(HttpServletRequest request){
HttpSession session = request.getSession();
}
這種方法時比較常見的一種,但是有些人會覺得這種比較麻煩,因為每次使用session都需要傳入一個參數。
第三種:通過@Autowired HttpServletRequest request 獲取
這種方式類似于我們注入service類的時候是一樣的,有些小伙伴第一眼看到這種方式的時候是拒絕的,因為我們都知道,servlet是默認采用單例多線程的方式處理多用戶請求的,如果直接把它寫成一個全局的變量,會不會是不安全的?不過這里·基于spring注解的,所以基本上可以確保線程的安全性。
第四種:使用RequestContextHolder類獲取request,間接獲取到session
通過使用RequestContextHolder這個類我們可以在不傳入HttpServletRequest,直接獲取到本次請求中的request。一般使用中我們會對它進行封裝,做成一個工具方法進行使用。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習