1. 程式人生 > >JAVA與JSP之間如何傳值

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.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