通过注解或servlet声明都能控制 servlet 容器如何提供 servlet 实例。
对于非分布式(默认)的 servlet,servlet 容器对于每个 Servlet 声明必须且只能产生一个实例。
但若 Servlet 实现了 SingleThreadModel 接口,servlet 容器可选择实例化多个实例以便:
若 servlet 部署分布式环境,容器可为每个JVM的每个 Servlet 声明产生一个实例。但若在分布式环境中 servlet 实现了 SingleThreadModel 接口,此时容器可以为每个容器的 JVM 实例化多个 Servlet 实例。
SingleThreadModel 接口的作用是保证一个特定 servlet 实例的service方法在一个时刻仅能被一个线程执行。注意,此保证仅适于每个 servlet 实例,因为容器可以选择池化这些对象。
有些对象可以在同一时刻被多个 servlet 实例访问,如 HttpSession 实例,可以在一个特定的时间对多个 Servlet 可用,包括那些实现了 SingleThreadModel 接口的 Servlet。
参考
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_33589510/article/details/121040573
内容来源于网络,如有侵权,请联系作者删除!