C/C++ Java 习题 答疑 资源
Java 学习群
返回首页
资源: [面试] Servlet是单例的、还是多例的?  
网盘:
标签:
面试 Servlet 单例 多例

Servlet是单例的。Tomcat会根据项目 web.xml中的配置,以及项目中的注解,加来相应的Servlet,创建相应的实例。

当有请求到来时,即使一次有多个并发请求,Tomcat也会交给同一Servlet实例处理。因此,我们必须对此有线程重入的考虑。(有关线程重入,参考 网站入门篇 第11章)

比如,有一个 Servlet :

@WebServlet("/listStudent")
public class StudentListService extends HttpServlet
{
      @Override
      public void doPost ( ... request, ... response ) 
      {
      }
}

假设同一时间N个用户都在浏览器里,输入 http://your.com/listStudent ,则 Tomcat后台会创建N个线程、并且 调每个线程里都调用一个唯一的StudentListService 实例来处理这个请求。这便是线程的重入了。

[ 纯博客文章, 无相关源码或视频 ]