🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
~~~ public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy(); } ~~~ #### 生命周期 init 被创建 ``` void init(ServletConfig var1) throws ServletException; ``` ``` 被创建,执行init,只执行一次,所以Servlet是单例的; 多用户访问时,会存在线程安全问题,所以尽量不要在Servlet中定义成员变量,即使定了也不要修改 Servlet什么时候被创建? 默认情况下,第一次被访问的时候,Servlet被创建,但是可以配置Servlet的创建时机 <servlet> <servlet-name>ServletDemo1</servlet-name> <servlet-class>com.sn511.ServletDemo1</servlet-class> <load-on-startup>1</load-on-startup> // 第一次访问时创建值为负数,大于0就会在服务器启动时创建 </servlet> ``` 提供服务 ``` void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; ``` ``` 提供服务:执行service方法,执行多次 每次访问Servlet时,Service方法都会被调用一次 ``` 被销毁:执行destroy方法,只执行一次 ``` void destroy(); ``` ``` Servlet被销毁时执行。服务器关闭时,Servlet被销毁 只有服务器正常关闭时,才会执行destroy方法。 destroy方法在Servlet被销毁之前执行,一般用于释放资源 ```