【问题标题】:Where to place the database connection in java servlet and jsp? [duplicate]java servlet和jsp中的数据库连接放在哪里? [复制]
【发布时间】:2016-12-15 11:56:03
【问题描述】:

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

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

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

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

【问题讨论】:

标签: java jsp servlets


【解决方案1】:

您对 JSP 是什么存在根本性的误解。

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

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

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

如果要在 JSP 和 servlet 之间进行选择,我不会投赞成票。为无需 Java EE 容器即可独立测试的服务和存储库创建基于接口的 POJO。为服务提供 servlet 引用以完成来自客户端的请求。

JSP 是一种古老的 J2EE 1998 老式技术。对于 Web 用户界面和后端的 REST 服务,世界已经朝着 HTML5、CSS3、JavaScript 和 jQuery 的方向发展。你也应该考虑一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多