这个得从Setvlet的加载方式来看
Setvlet的加载方式有以下几种
- 通过web.xml配置文件加载
- 通过注解加载
- 通过ServletContext.addServlet()方法加载
通过web.xml配置文件加载
这种加载方式是可以只传多例的, web.xml里面配置的是Servlet的类名, 同一个Servlet类名可能对应不同的地址映射
通过注解加载
注解加载时默认是单例的, web容器启动的时候如果扫描到某个类上面有WebServlet注解, 那么就会创建该类对应的实例, 并将实例加载到容器中
通过ServletContext.addServlet()方法加载
对于这种方法来说, 主要看在使用的时候是否创建了多个Servlet实例, 如果对于同一个Servlet类, 创建了多个实例, 并调用了ServletContext.addServlet()方法, 那么这里就是多例, 如果针对一个Servlet类, 只创建一个实例, 那么就是单例
总结
Servlet是可以支持多例的, 根据Servlet的加载方式不同可以有不同的支持方式
因为个人知识范围有限, 本篇文章仅代表个人观点, 如果有误, 欢迎指正