我写了一个连接到DB的简单Servlet,检索一些信息结束写一个json响应。我正在使用tomcat。
关于servlet的几个问题:
1)据我了解容器,如果同时接收请求,将它们放入队列中,最后只执行一个Servlet,那是真的吗?或者容器使用不同的Servlet实例并行化请求?
2)为了连接到DB,我在另一个在contextInitialized中实现ServletContextListener的Class中创建连接,并在contextDestroyed中将其关闭。这是正确的方法吗?如果我想并行化,我应该使用不同的连接,对吗?
答案 0 :(得分:1)
不,不是。请求使用单个servlet实例并发执行。如果tomcat线程池中没有可用的线程来处理请求,它们只会排队。
不,不是。每个事务应该从一个连接池(一个DataSource,通常由Tomcat在JNDI中公开)获得自己的连接,使用此连接完成其工作,提交或回滚,然后关闭连接以将其返回池。