方法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