用Tomcat/Scala保持用戶狀態的最佳方式是什麼?我的第一個想法是在任何時候都將會話信息保留在會話中,並且如果沒有賬戶會話信息,則將用戶重定向到登錄頁面。這是一種可行的模式,還是有一種更持久的用戶信息更明智的方式?我試圖複製一個基本的購物車網站,而我現在只是在考慮解決這個問題。通過Tomcat/Scala保持狀態的最佳方式?
2
A
回答
2
有很多方法來剝皮這隻貓。只要您的物品足夠輕便(並且您的流量足夠低),您就可以將信息存儲在會話中。這可能是最簡單的解決方案,但在需要縮放或羣集時可能會遇到困難。
根據經驗,Tomcat擴展,集羣,db會話存儲等對我而言並不是很好。
另一種方法是使用cookie管理自己的令牌。然後,將給定用戶令牌的實際信息存儲在服務器上。最幼稚的實現只需要一個內存映射,但是當你重新啓動應用程序時,這會有失去所有數據的缺點。
您可以將信息保存到數據庫,並在每次請求時使用用戶令牌(可能使用某種緩存策略)進行查找。這也允許您擴展到多個應用程序服務器,而不必過多關注集羣 - 每個實例只查找用戶令牌並在共享數據庫上執行查找請求。
如果您將實際的實現包裝在一個漂亮的界面後面,您可以從簡單/便宜的會話解決方案開始,如果以後需要,可以逐步轉向更復雜的實現。需要注意的是,您必須格外小心,不要在第一次執行時將servlet特定信息泄露到接口中。
相關問題
- 1. 在Rx中保持可觀察狀態的最佳方式
- 2. 什麼是保持身份驗證狀態的最佳方式
- 3. QWidget如何保持最佳狀態?
- 4. 讓您的Rails版本保持最新狀態的最佳方式是什麼?
- 5. 保存動態網頁界面狀態的最佳方式
- 6. 讓Mediaplayer長時間保持活躍狀態的最佳方式是什麼Android
- 7. 使JUnit測試保持最新狀態的最佳實踐
- 8. Keras,優化時保存狀態的最佳方式
- 9. 什麼是保存遊戲狀態的最佳方式?
- 10. 保持動態數據庫字段的最佳方式?
- 11. 即使跳過幾個城市,TSP的最佳解決方案是否仍然保持最佳狀態?
- 12. 如何確保JDialog始終保持最佳狀態
- 13. 如何通過GitHub回購讓Drupal保持最新狀態?
- 14. 始終保持最佳狀態的可點擊的表單
- 15. 通過C++接口的最佳方式?
- 16. 通過api在rails中保存datetime的最佳方式
- 17. MVC:創建動態組的最佳方式通過
- 18. 如何讓FindDialog保持最佳狀態(Delphi)?
- 19. 如何使活動窗口始終保持最佳狀態
- 20. 與Qt在OSX上保持最佳狀態
- 21. 哪一個會話保持最佳狀態?
- 22. Android模擬器窗口保持最佳狀態Alt + Tab
- 23. Android:通過保存測試的快捷方式活動狀態
- 24. 保持用戶界面最新的最佳方式?
- 25. 最佳方式,通過使用Java
- 26. 反應 - 什麼是保持文本格式的最佳方式
- 27. 在使用MVVM模式時通知狀態修改的最佳方式
- 28. 保持PCB和線程狀態保持在TCB中的過程狀態
- 29. 保存Winform窗體控件狀態的最佳方法?
- 30. 在我的Ember.js應用程序中保存編輯狀態的最佳方式