使用Filter過濾器中訪問getSession()要轉(zhuǎn)化
Filter過濾器中訪問getSession()要進(jìn)行轉(zhuǎn)化
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; ?? ??? ?HttpServletResponse res = (HttpServletResponse)response;?? ??? ? ?? ??? ?User user = (User)req.getSession().getAttribute("user"); }
request.getSession()的問題
在JavaWeb項目中,request.getSession()一般是被用來存儲當(dāng)前用戶對象到session中,或者從session中獲取當(dāng)前用戶對象。
分為無參和有參兩種寫法:
1. 無參:request.getSession()
從當(dāng)前request中獲取session,如果獲取不到session,則會自動創(chuàng)建一個session,并返回新創(chuàng)建的session;如果獲取到,則返回獲取到的session;
2. 有參:request.getSession(boolean var1)
request.getSession(true)
這種方式和無參時一樣,只是增家了一個true參數(shù),明確告訴它在獲取不到的時候自動創(chuàng)建session;
request.getSession(false)
這種方式與上兩種的區(qū)別,就是在獲取不到session的時候,不會自動創(chuàng)建session,而是會返回null。
各方式的應(yīng)用場景:
如果想要存儲信息到session中時,使用request.getSession(),
如果想要獲取session中的信息時,使用request.getsession(false),并在獲取后對session變量進(jìn)行是否為null的判斷,再進(jìn)行下一步操作。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中HashSet和HashMap的區(qū)別_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java中HashSet和HashMap的區(qū)別_動力節(jié)點Java學(xué)院整理,需要的朋友可以參考下2017-04-04Redis原子計數(shù)器incr,防止并發(fā)請求操作
這篇文章主要介紹了Redis原子計數(shù)器incr,防止并發(fā)請求操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11java獲取和設(shè)置系統(tǒng)變量問題(環(huán)境變量)
這篇文章主要介紹了java獲取和設(shè)置系統(tǒng)變量問題(環(huán)境變量),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01Mybatis多數(shù)據(jù)源切換實現(xiàn)代碼
這篇文章主要介紹了Mybatis多數(shù)據(jù)源切換實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10