在jsp中管理用戶會話時,我們有時通過使用session.setAttribute()設置varialble來使用會話,另一方面我們可以創建java bean對象)存儲用戶信息,並可以在另一頁上查看。誰能告訴我這兩件事有什麼區別?在jsp中用於會話管理的java bean和會話之間的區別
回答
它們只是傳遞相同數據的稍微不同的方式。
正如你說,你既可以:
(1)
session.setAttribute("entry", entry);
或(2)
session.setAttribute("name", entry.getName());
session.setAttribute("address", entry.getAddress());
session.setAttrubute("phone", entry.getPhone());
那麼對於(1)中,JSP可能包括:
Name: ${entry.name}<br/>
Address: ${entry.address}<br/>
Phone: ${entry.phone}<br/>
而對於(2),等效JSP可能是:
Name: ${sessionScope['name']}<br/>
Address: ${sessionScope['address']}<br/>
Phone: ${sessionScope['phone']}<br/>
(或者您可以使用<c:set>
設置一些局部變量,使上面的代碼有點更具可讀性)。
基本上,兩者都是相同的,但(1)使用較少的代碼並且更易於閱讀和理解。
(雖然我還是一個Java EE新受自己,所以我不會介意一個更有經驗的意見!)
有許多的不同之處。首先,當你將東西存儲爲一個屬性時,它被存儲爲一個對象,所以當你檢索它時,它必須被轉換爲實際的東西,而一個bean始終是它的類。
其次,當你使用一個bean時,你不必擔心它是否被創建。如果bean已經被創建,jsp:useBean標籤將訪問這個bean,如果它沒有創建它,那麼如果你想調用一個函數或者使用一個get方法,你可以保證它在你使用bean時存在。如果您打算將它存儲在會話變量中,但在存儲它之前嘗試訪問它,它將返回null並調用函數將導致一些問題。
通常,您使用會話變量來傳遞信息,而您使用bean來傳遞具有您可能需要調用的函數的類。因此,如果你打算傳遞相對簡單的數據(例如字符串),那麼把它扔到會話變量中沒有什麼不妥。 null作爲一個值是有意義的,只是在比較時要小心(例如:string_var.equals((String)session.getAttribute(「attribute_name」))not((String)session.getAttribute(「attribute_name」))。equals(string_var )作爲第二個可能是null.equals()這是沒有定義)。
如果你在MVC框架中編程,那麼(據我的理解),你通常使用bean來寫入會話(或其他,根據情況而定)變量,然後你的JSP頁面將加載信息會話變量。這(除其他外)使網頁更新安全(也就是說,如果點擊刷新按鈕,它將再次從會話變量中獲取信息,而不是再次運行所有代碼並從會話變量中重新載入信息),當你追加信息,遞增或遞減時,這是一件大事。
不可否認,我對JSP比較陌生,但那是我對情況的理解。
- 1. 管理bean和會話bean之間的區別
- 2. 在Java中,Hibernate會話,JSP/Servlet會話和會話事務管理之間有什麼區別
- 3. 會話bean和實體bean以及有狀態會話bean和無狀態會話bean之間的區別
- 4. 在jsp的會話管理中使用http和https的區別
- 5. 會話和緩存之間的區別
- 6. PHP會話和自制會話之間的區別?
- 7. Servlet和JSP中的會話管理
- 8. JSP/ASP會話對象會話和網站用戶帳戶會話之間的區別?他們不一樣嗎?
- 9. JSP會話和Bean混淆
- 10. 春季會話bean管理
- 11. 在php和jsp之間共享會話
- 12. jsp項目中的會話管理
- 13. servlet jsp中的會話管理
- 14. 如何在Jsp中使用會話Bean?
- 15. 文件中和數據庫中的會話之間的區別
- 16. 會話Bean用戶管理JSF
- 17. 不同Java EE應用程序之間的會話管理
- 18. 用於EC2實例中會話管理的Memcached會話管理器
- 19. 使用web.xml和setMaxInactiveInterval設置會話超時之間的區別
- 20. Http會話管理/可選會話管理(Java)
- 21. 快速會話中req.sessionID和req.session.id之間的區別
- 22. TLS中主密鑰和會話密鑰之間的區別
- 23. Java的會話Bean上蘭
- 24. hibernate會話和連接池之間的區別和關係?
- 25. Symfony2:管理會話時間
- 26. 會話管理對於笨
- 27. 會話管理
- 28. 會話管理
- 29. 會話管理
- 30. 有狀態會話Bean和HTTP會話