Java 如果用户离开JSF中的页面,数据库连接是否关闭?

Java 如果用户离开JSF中的页面,数据库连接是否关闭?,java,jsf,Java,Jsf,我正在使用JavaServerFaces(JSF)创建一个基于web的应用程序。我只是想知道,如果数据库连接打开,用户离开网页(关闭浏览器),JSF会自动关闭此连接吗?离开网页的用户不会对数据库连接产生影响。用户请求页面,服务器响应。这就是他们相互交流的结束。如果用户关闭浏览器或按下back键,则不会通知服务器 在创建HTTP响应之前,您只能在Java代码中关闭该页面。用户离开该页面不会对数据库连接产生影响。用户请求页面,服务器响应。这就是他们相互交流的结束。如果用户关闭浏览器或按下back键,

我正在使用JavaServerFaces(JSF)创建一个基于web的应用程序。我只是想知道,如果数据库连接打开,用户离开网页(关闭浏览器),JSF会自动关闭此连接吗?

离开网页的用户不会对数据库连接产生影响。用户请求页面,服务器响应。这就是他们相互交流的结束。如果用户关闭浏览器或按下back键,则不会通知服务器


在创建HTTP响应之前,您只能在Java代码中关闭该页面。

用户离开该页面不会对数据库连接产生影响。用户请求页面,服务器响应。这就是他们相互交流的结束。如果用户关闭浏览器或按下back键,则不会通知服务器



在创建HTTP响应之前,您只能在Java代码中关闭它。

您应该在获取要发送回客户端的数据后立即关闭数据库连接,然后再将其发送回客户端。最好在
finally
块中完成。没有真正的理由让它保持打开状态,但这不仅会导致潜在的内存泄漏,而且会带来巨大的安全风险。

在将数据发送回客户端后,您应该立即关闭数据库连接,然后再将数据发送回客户端。最好在
finally
块中完成。没有真正的理由让它保持打开状态,但这不仅会导致潜在的内存泄漏,而且会带来巨大的安全风险。

如果您关闭数据库连接,连接池(如果有)就会关闭,或者它会被垃圾回收。

如果您关闭数据库连接,连接池(如果有)就会关闭,或者它会被垃圾收集。

你自己使用JPA还是管理db连接?你告诉它怎么做,计算机不会自己思考……不,我没有使用JPA,我只是自己管理连接。@JarrodRoberson就像我说的,我只是想知道。当然,计算机不会自己思考,这就是为什么我说“does JSF”。负责打开任何资源的人也负责关闭它。JSF肯定不会自己神奇地打开任何数据库连接,因此根本不会关闭它。你是使用JPA还是自己管理数据库连接?你告诉它做什么,计算机不会自己思考……不,我没有使用JPA,我只是自己管理连接。@Jarroderson就像我说的,我只是想知道。当然,计算机不会自己思考,这就是为什么我说“does JSF”。负责打开任何资源的人也负责关闭它。JSF肯定不会自己神奇地打开任何数据库连接,因此根本不会关闭它。在每个事务中打开和关闭数据库连接可以吗?这是我目前在应用程序中采用的方法。我认为这会给服务器带来太多的负担,所以我正在考虑另一种处理方法。数据库池能解决这个问题吗?为每个事务打开一个新的连接是标准的方法。但你是对的,连接池确实提高了性能。说得好!在每个事务中打开和关闭数据库连接可以吗?这是我目前在应用程序中采用的方法。我认为这会给服务器带来太多的负担,所以我正在考虑另一种处理方法。数据库池能解决这个问题吗?为每个事务打开一个新的连接是标准的方法。但你是对的,连接池确实提高了性能。说得好!这取决于托管bean的范围。如果服务器从同一会话中获得新请求(不同页面),则ViewSoped和RequestScope bean将被删除。当然,在会话超时之前,服务器不会检测到关闭浏览器。是的,但是用户关闭浏览器没有这种效果。新的请求仍然意味着执行一些Java代码来生成新的HTTP响应等。这取决于托管bean的范围。如果服务器从同一会话中获得新请求(不同页面),则ViewSoped和RequestScope bean将被删除。当然,在会话超时之前,服务器不会检测到关闭浏览器。是的,但是用户关闭浏览器没有这种效果。一个新的请求仍然意味着执行一些Java代码来生成一个新的HTTP响应等等。