用Tomcat/Scala保持用户状态的最佳方式是什么?我的第一个想法是在任何时候都将会话信息保留在会话中,并且如果没有账户会话信息,则将用户重定向到登录页面。这是一种可行的模式,还是有一种更持久的用户信息更明智的方式?我试图复制一个基本的购物车网站,而我现在只是在考虑解决这个问题。通过Tomcat/Scala保持状态的最佳方式?
2
A
回答
2
有很多方法来剥皮这只猫。只要您的物品足够轻便(并且您的流量足够低),您就可以将信息存储在会话中。这可能是最简单的解决方案,但在需要缩放或群集时可能会遇到困难。
根据经验,Tomcat扩展,集群,db会话存储等对我而言并不是很好。
另一种方法是使用cookie管理自己的令牌。然后,将给定用户令牌的实际信息存储在服务器上。最幼稚的实现只需要一个内存映射,但是当你重新启动应用程序时,这会有失去所有数据的缺点。
您可以将信息保存到数据库,并在每次请求时使用用户令牌(可能使用某种缓存策略)进行查找。这也允许您扩展到多个应用程序服务器,而不必过多关注集群 - 每个实例只查找用户令牌并在共享数据库上执行查找请求。
如果您将实际的实现包装在一个漂亮的界面后面,您可以从简单/便宜的会话解决方案开始,如果以后需要,可以逐步转向更复杂的实现。需要注意的是,您必须格外小心,不要在第一次执行时将servlet特定信息泄露到接口中。
相关问题
- 1. 什么是保持身份验证状态的最佳方式
- 2. QWidget如何保持最佳状态?
- 3. 让您的Rails版本保持最新状态的最佳方式是什么?
- 4. 保存动态网页界面状态的最佳方式
- 5. 让Mediaplayer长时间保持活跃状态的最佳方式是什么Android
- 6. 什么是保存游戏状态的最佳方式?
- 7. 保持动态数据库字段的最佳方式?
- 8. 即使跳过几个城市,TSP的最佳解决方案是否仍然保持最佳状态?
- 9. 如何确保JDialog始终保持最佳状态
- 10. 如何通过GitHub回购让Drupal保持最新状态?
- 11. 通过C++接口的最佳方式?
- 12. 通过api在rails中保存datetime的最佳方式
- 13. Android:通过保存测试的快捷方式活动状态
- 14. MVC:创建动态组的最佳方式通过
- 15. 哪一个会话保持最佳状态?
- 16. 如何使活动窗口始终保持最佳状态
- 17. 如何让FindDialog保持最佳状态(Delphi)?
- 18. 保持用户界面最新的最佳方式?
- 19. 最佳方式,通过使用Java
- 20. 在使用MVVM模式时通知状态修改的最佳方式
- 21. 保存Winform窗体控件状态的最佳方法?
- 22. 在我的Ember.js应用程序中保存编辑状态的最佳方式
- 23. ASP.NET MVC:保持最后一页状态
- 24. 让叉子保持最新状态
- 25. DCEF3保持最新状态吗?
- 26. 通过FTP/SSH通过vps远程编程的最佳方式
- 27. iPhone - 保持tableview状态的最简单方法?
- 28. 什么是我保存并加载游戏状态的最佳方式
- 29. 保存论坛帖子阅读状态的最佳方式是什么?
- 30. AngularJS - 处理手动输入URL的状态的最佳方式