在java servlet和jsp中放置数据库连接的位置?

时间:2016-08-09 12:25:06

标签: java jsp servlets

使用JSP和servlet开发Web应用程序时,这是我心中最大的问题,即在哪里进行数据库连接编码......

在servlet中,如果我们将连接代码放在service()(或doXXX())方法中,那么对于每个请求,在应用程序和数据库之间建立连接;这导致了时间和资源的消耗,所以这不是一个好的选择......

如果我们将连接代码放在init()方法中(通过初始化instanse变量),那么只有一个连接,并且所有用户的请求都可以使用相同的连接与服务中的数据库进行通信()(或doXXX())方法;当我们考虑同步请求时,这可能会导致同步问题,因为所有请求都使用相同的连接......

那么这个问题的优雅解决方案是什么?

1 个答案:

答案 0 :(得分:0)

你对JSP是什么有一个根本的误解。

Java Server Pages,特别是当您使用JSTL时,会被编译为在服务器上运行的servlet。它们是HTML工厂,它们创建标记并将其流式传输到浏览器。

话虽如此,JSP并不是放置数据库访问或任何类型逻辑的地方。它们应该用于渲染标记 - 这就是全部。

数据库连接应由Java EE容器池化。它们应该由知道工作单元和事务行为的服务层管理。服务层应该获得连接,将其提供给与数据库交互的存储库类,并在将连接返回池之前关闭连接。

如果它是JSP和servlet之间的选择,我既不投票也不投票。为服务和存储库创建基于接口的POJO,可以在没有Java EE容器的情况下独立测试。为servlet提供对服务的引用,以满足客户端的请求。

JSP是旧的J2EE 1998年份技术。世界已经朝着HTML5,CSS3,JavaScript和jQuery的方向发展,用于Web用户界面和后端的REST服务。你也应该考虑它。