JAVA后台 關於如何從后台傳遞信息在jsp前端頁面顯示
首先,博主今天為了將后台的信息傳遞到前台,廢了不少的腦筋,一開始,博主采用了request.setAttribute()的方法,來實現的,具體代碼如下:
在servlet中,寫上:
request.setAttribute(“name”, loginUser.getAccount());//這里的意思可以理解為將loginUser.getAccount()的值放入名為“name”的容器里
在jsp頁面中,寫上:
歡迎您,${name}//意思是將name中的數據顯示出來,也就是后台傳遞的內容。
結果截圖:
哈哈哈,博主一看,信息傳過去了,內心竊喜,搞定!!!
然而,當博主為了萬(wan)全(quan)起(shou)見(jian),刷新了一下頁面,發現,從后台傳遞到jsp的值不見了!!!卧槽,博主內心一陣mmp。
這是怎么回事???
當博主重新打開網頁,重新輸入信息,值又回來了,但一刷新頁面,值又不見了。因此,博主猜想可能是因為request.setAttribute()的生命周期是不是太短了,導致不能一直顯示下去。
所以當博主把后台代碼改成:
request.getSession().setAttribute(“name”, loginUser.getAccount());
重新運行了程序,正常顯示,刷新,正常顯示,因此,問題解決!
這里說一下關於request.getsession().setAttribute()和request.setAttribute的區別 :
request.getSession().setAttribute(“name”,loginUser.getAccount())把,loginUser.getAccount()返回值保存到session當前會話中,名稱為name,只要當前會話不過期,任何地方都可以訪問到; request.setAttribute(“name”,loginUser.getAccount())把,loginUser.getAccount()的返回值保存到request當前請求中,名稱為name,只在當前請求中訪問到,其他請求中無法訪問
request.setAttribute這個的生命周期就是request級別的
request.getSession().setAttribute這個的生命周期是session級別的
因此,如果小伙伴們是為了傳遞短時間的信息,如:用戶登錄界面中的信息報錯,可以用聲明周期較短的request.setAttribute
而為了使信息可以保存更久的時候,則應該用request.getSession().setAttribute
謝謝大佬們觀看,如有不同觀點或更好的觀點,請及時提出,小弟虛心請教。
摘抄自:https://blog.csdn.net/Atimynyc/article/details/78386601?locationNum=2&fps=1