JAVA與JSP之間如何傳值
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.getSession().setAttribute(“name”,loginUser.getAccount())把,loginUser.getAccount()返回值儲存到session當前會話中,名稱為name,只要當前會話不過期,任何地方都可以訪問到; request.setAttribute(“name”,loginUser.getAccount())把,loginUser.getAccount()的返回值儲存到request當前請求中,名稱為name,只在當前請求中訪問到,其他請求中無法訪問
request.setAttribute
request.getSession().setAttribute這個的生命週期是session級別的
因此,如果小夥伴們是為了傳遞短時間的資訊,如:使用者登入介面中的資訊報錯,可以用宣告週期較短的request.setAttribute
而為了使資訊可以儲存更久的時候,則應該用request.getSession().setAttribute