如何在Struts应用中实现注销

问题描述 投票:0回答:2

我有一个J2EE应用程序,其注销未正确实现,我的目的是在用户注销后关闭所有数据库资源。不确定 session.invalidate(); 是否有效真的会有帮助,我今天会尝试一下。请建议实现注销的最佳方式是什么,以便用户注销后释放所有有价值的资源。

jakarta-ee logout
2个回答
1
投票

我的目的是在用户注销后关闭所有数据库资源

这已经是不良做法的迹象。数据库资源应该在尽可能短的范围内获取和关闭,即在同一个方法块内。您可能永远不会将数据库资源(Connection

Statement
和/或
ResultSet
)作为静态变量或实例变量。这是资源泄漏和更严重的问题的收据。

如果初衷是为了提高连接性能,就需要引入连接池。请记住,这不是让

你自己

保持联系畅通的借口。只需以同样的方式尽快获取和关闭它们,连接池实现本身就会担心实际关闭连接或将其释放回池。一切都是完全透明的。体面的应用程序服务器附带 JNDI 数据源风格的连接池功能。利用它。完成此操作后,您根本不需要担心任何开放的数据库资源或性能。


0
投票

使用您的连接和其他数据库类来删除数据库资源。
  1. 使用会话对象清除会话。
  2. 检查您在应用程序中创建的 cookie,并删除所需的一个或全部。
© www.soinside.com 2019 - 2024. All rights reserved.