更新時間:2022-03-25 10:12:30 來源:動力節(jié)點(diǎn) 瀏覽1586次
很多初學(xué)Java的小伙伴對SpringMVC獲取session的方法還不是很了解,下面就由小編來給大家進(jìn)行介紹。
第一種:將HttpSession作為Spring MVC的方法參數(shù)傳入,直接獲取。
直接在Spring MVC 的方法中將參數(shù)傳入:
public void getSessionAction(HttpSession session){
}
第二種:將HttpServletRequest作為Spring MVC 的方法參數(shù),間接獲取
先是獲取到request,然后通過request間接的獲取到session,代碼如下:
public void getSessionAction(HttpServletRequest request){
HttpSession session = request.getSession();
}
這種方法時比較常見的一種,但是有些人會覺得這種比較麻煩,因為每次使用session都需要傳入一個參數(shù)。
第三種:通過@Autowired HttpServletRequest request 獲取
這種方式類似于我們注入service類的時候是一樣的,有些小伙伴第一眼看到這種方式的時候是拒絕的,因為我們都知道,servlet是默認(rèn)采用單例多線程的方式處理多用戶請求的,如果直接把它寫成一個全局的變量,會不會是不安全的?不過這里·基于spring注解的,所以基本上可以確保線程的安全性。
第四種:使用RequestContextHolder類獲取request,間接獲取到session
通過使用RequestContextHolder這個類我們可以在不傳入HttpServletRequest,直接獲取到本次請求中的request。一般使用中我們會對它進(jìn)行封裝,做成一個工具方法進(jìn)行使用。
初級 202925
初級 203221
初級 202629
初級 203743