5.servlet生命周期方法
2020-01-07 本文已影响0人
霖在
init方法:初始化方法,在servlet被创建时执行,只一次
service方法:提供服务方法,每一次servlet被访问时都会执行,可多次
destroy方法:销毁方法,在servlet被杀死(服务器正常关闭)时执行,只一次
生命周期也是这三个
1.servlet什么时候被创建?
默认情况下第一次访问servlet时候才会创建servlet对象。也可以修改为在服务器启动时创建,只需要在<servlet>标签下把<load-on-startup>设为负数。有时一些servlet需要依赖其他servlet,那就把被依赖的这些servlet在服务器启动时就创建。
2.servlet是单例的:因为init只执行一次,所以在内存中只有一个对象。问题:多线程访问安全问题。但是没法对其进行加锁;如果加synchronize块,会影响性能。解决方法:尽量不要在servlet中定义成员变量!即使定义了也不要修改其值。从根本上解决了线程同步问题
- destroy执行于servlet被销毁之前执行。一般用于释放资源。