JAVA後臺 關於如何從後臺傳遞信息在jsp前端頁面顯示

JAVA後臺 關於如何從後臺傳遞信息在jsp前端頁面顯示前端

首先,博主今天爲了將後臺的信息傳遞到前臺,廢了很多的腦筋,一開始,博主採用了request.setAttribute()的方法,來實現的,具體代碼以下:markdown

在servlet中,寫上:
request.setAttribute(「name」, loginUser.getAccount());//這裏的意思能夠理解爲將loginUser.getAccount()的值放入名爲「name」的容器裏session

在jsp頁面中,寫上:
歡迎您,${name}//意思是將name中的數據顯示出來,也就是後臺傳遞的內容。jsp

結果截圖:
這裏寫圖片描述spa

哈哈哈,博主一看,信息傳過去了,心裏竊喜,搞定!!!.net

然而,當博主爲了萬(wan)全(quan)起(shou)見(jian),刷新了一下頁面,發現,從後臺傳遞到jsp的值不見了!!!臥槽,博主心裏一陣mmp。
這是怎麼回事???
當博主從新打開網頁,從新輸入信息,值又回來了,但一刷新頁面,值又不見了。所以,博主猜測多是由於request.setAttribute()的生命週期是否是過短了,致使不能一直顯示下去。blog

因此當博主把後臺代碼改爲:
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級別的get

所以,若是小夥伴們是爲了傳遞短期的信息,如:用戶登陸界面中的信息報錯,能夠用聲明週期較短的request.setAttribute
而爲了使信息能夠保存更久的時候,則應該用request.getSession().setAttribute

謝謝大佬們觀看,若有不一樣觀點或更好的觀點,請及時提出,小弟虛心請教。

 

摘抄自:https://blog.csdn.net/Atimynyc/article/details/78386601?locationNum=2&fps=1

相關文章
相關標籤/搜索