4.servlet单例问题
当servlet被第一次访问后,就被加载到内存,以后该实例对每个请求服务,即在使用中是单例
因为servlet是单例,因此会出现线程安全问题。比如:售票系统
解决线程安全问题的原则
(1)如果一个变量需要多个用户共享,则应当在访问该变量的时候,加同步机制
synchronized(对象){
//同步代码
}
(2)如果一个变量不需要共享,则直接在doGet()或者doPost()定义,这样不会存在线程安全问题
在web.xml中配置
<load-on-startup>1</load-om-startup>//1代表servlet被init的顺序