【问题标题】:Does jspInit() run only once?jspInit() 是否只运行一次?
【发布时间】:2015-10-12 18:08:13
【问题描述】:

我需要在 tomcat servlet 中打开一个连接池。在我的 jsp 页面中,我覆盖了 jspInit()

<%!
public void jspInit() {
. . .
}
%> 

一切似乎都运行良好,但我不确定这是否是初始化连接池的正确方法。这个 jspInit() 是否只执行一次,即当第一个用户打开这个 jsp 页面时?

我的意思是:当第二个和第三个等用户打开相同的.jsp 页面时,这个jspInit() 会被忽略,就好像它根本不存在一样?所以对于第 2、3、. . .用户这个jsp 页面没有执行jspInit() 方法

【问题讨论】:

    标签: java jsp tomcat hsqldb init


    【解决方案1】:

    没错。它只被容器调用一次 在生命周期中。因此,此方法非常适合创建/打开连接

    参考:http://www.coderanch.com/t/425072/java-Web-Component-SCWCD/certification/JSP

    【讨论】:

    • 有任何资源证实这一点吗?
    • 谢谢,public void jspInit() 是打开连接的最佳位置
    • @Pshemo 编辑了我的答案以添加资源
    • @Rehman 我的意思是官方资源。我可能错了,因为我对 JEE 的了解可能已经过时,但据我所知,init 被引入Servlets(并且 JSP 被转换为 servlet)的原因之一是让容器重用 servlet 对象。它只是在想要注销它们时调用destroy(),在再次注册它们时调用init()
    猜你喜欢
    • 2020-12-20
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多