这是我在这个论坛上的第一篇文章。如果我违反了任何规范,请道歉。
我正在 Tomcat 容器中编写一个 RESTful servlet,并将在启动时(通过 JDBC)连接到数据库,然后在接收 HTTP 请求时,它将 HTTP POST 请求中的数据插入到数据库中。
我现在知道可以通过在 jersey webapp 类中实现 ServletContextListener 接口在 contextInitialized 方法中初始化 DB 连接。但是,我还有一个构造函数,它会不断为每个 HTTP 发布请求调用。我刚刚定义了这个构造函数,因为我想我可能会在那里添加一些调试消息来理解流程。
请注意,我的 web.xml 将 load-on-startup 参数设置为 1。
我想知道以下内容:为什么 Tomcat 为每个指向我的 webservice 的 HTTP 请求调用我的 webapp 类构造函数?此外,在我的 webapp 的日志中,我注意到 init 方法在构造函数之前被调用。这听起来很奇怪。正确的 ?还是不是真的?但是我的网络服务的每个 HTTP 请求都不会调用 init 方法。它仅在 Tomcat 启动时调用。
我的 Tomcat 版本是 v7.0,我使用的是 JDK 1.7。
任何有助于理解这种行为的帮助将不胜感激。