在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Linux/ SSH中controller里httpSession無法作為全局變量?

SSH中controller里httpSession無法作為全局變量?

我在做一個(gè)項(xiàng)目時(shí):

clipboard.png
這是HomeController中登陸成功后存到httpSession的staffDto。
然后我在另一個(gè)NoticeController中要取這個(gè)staffDto,

clipboard.png
可以將HttpSession作為方法參數(shù)然后取出,但是我為了方便將HttpSession作為這個(gè)Controller的全局變量時(shí),跑的時(shí)候卻報(bào)了空指針異常。

clipboard.png
是HttpSession不能作為Controller的全局變量用,還是我用的有錯(cuò)誤?
另外順便問下Session和HttpSession有區(qū)別嗎?

回答
編輯回答
六扇門
  1. 你的httpSession沒有初始化,因?yàn)樗且粋€(gè)對(duì)象所有默認(rèn)初始化為null,你的StaffDto是類全局變量在執(zhí)行構(gòu)造方法之前初始化調(diào)用httpSession.getAttribute(),httpSession為null
  2. HttpSession不能設(shè)備全局變量,因?yàn)橐粋€(gè)Controller可以被所有客戶端訪問,你寫在方法的參數(shù)時(shí)SpringMvc會(huì)幫你完成HttpSession注入。
  3. 你現(xiàn)在寫的所有Session應(yīng)該都是HttpSession,HttpSession本質(zhì)上是一個(gè)接口,你方法接受到的HttpSession是SpringMVC實(shí)現(xiàn)接口返回給你的實(shí)例
2017年5月9日 05:20