首页 > 其他分享 >面试题:如何让Servlet变成多例?

面试题:如何让Servlet变成多例?

时间:2022-10-31 12:34:01浏览次数:38  
标签:面试题 多例 Servlet SingleThreadModel 实例 MyServlet servlet public


方法1.实现  SingleThreadModel 接口(不推荐,官方已经将这个接口废弃)

public class MyServlet extends HttpServlet implements SingleThreadModel{

public MyServlet(){
System.out.println("MyServlet构造函数调用了");
}

@Override
public void init() throws ServletException {
System.out.println("MyServlet初始化");
}

}

SingleThreadModel的意思是“单线程模式”,如果servlet实现了该接口,会确保不会有两个线程同时执行servlet的service方法。 

servlet容器通过同步化访问servlet的单实例来保证,也可以通过维持servlet的实例池,对于新的请求会分配给一个空闲的servlet。源码中,最多会生成20个实例。

方法2. 在web.xml中多配置一个Servlet

哪怕是同一个Servlet,你在web.xml中配置几个,就会有几个实例。

标签:面试题,多例,Servlet,SingleThreadModel,实例,MyServlet,servlet,public
From: https://blog.51cto.com/u_10957019/5809097

相关文章