【问题标题】:Sharing DB Connections and already loaded scripts, styles on JSP Page在 JSP 页面上共享数据库连接和已加载的脚本、样式
【发布时间】:2010-10-27 14:01:02
【问题描述】:

我目前正在尝试用 JSP 编写我们现有的桌面应用程序。

为了能够保持可持续性,具有视觉效果并获得功能,我决定使用 JQuery。

在一个月前开始编写代码后,我们现在意识到这些页面会大量使用库(JQuery 和 JQueryUI 库、额外的插件和 CSS 文件)在每个页面中调用。我们还需要在每个进程中连接 Oracle 数据库。

我想要的是一个主页(可以说是 Application.jsp)。哪个会

  1. 连接到数据库,保持连接活跃(连接成功,只要我继续使用它就活跃)
  2. 使用 ajax 调用子页面。子页面被编码为原始 html。 (用 Jquery 尝试了 load() 和 get(),成功了)
  3. 在加载的子页面上应用 JQuery 函数和 CSS(无法正常工作)
  4. 通过使用活动数据库连接使用 getJSON() 获取查询结果。 (也无法正常工作,可能是因为 JQuery 在我加载的页面上不起作用,或者数据库连接无法共享)

如果我能以这种方式工作,那将节省我在每个子页面调用中加载数百 kB 的库。我也不需要为每个进程维护一个数据库连接。

任何帮助将不胜感激。谢谢...

【问题讨论】:

    标签: jquery oracle jsp jdbc shared-libraries


    【解决方案1】:

    不要让连接永远打开自己。当数据库保持打开时间过长并且您的应用程序将中断时,数据库将关闭它们。通常的做法是使用连接池。体面的 servletcontainers 提供了类似 JNDI 数据源的功能。连接池实现本身会担心以正确的方式获取和关闭实际连接。

    不清楚您使用的是哪个 servletcontainer,所以这里只是一些 Tomcat 特定的文档作为示例:

    完成此操作后,更改 JDBC 代码中的连接管理器以将 DriverManager#getConnection() 替换为 DataSource#getConnection() 并保持 JDBC 代码的剩余部分稳定(在尽可能短的范围内获取并关闭连接, 总是关闭finally 块中的所有资源)。如果您对此也不确定,可以在此basic JDBC DAO tutorial 中找到一些见解。

    【讨论】:

      【解决方案2】:

      在连接管理上,绝对要遵循 BalusC 的建议。查找您的应用服务器或容器的资源实现并在应用服务器中设置数据库连接。

      在将 JQuery 函数和事件处理程序应用于新的 AJAX 加载内容时,您将需要使用 jquery 选择器并重新应用以前应用于整个文档的任何内容,但您只能针对新加载的内容运行它,而不是整个文档树。

      【讨论】:

        猜你喜欢
        • 2015-11-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-13
        • 2020-07-27
        • 2023-03-03
        • 2014-08-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多